krz/orgstar

A native macOS editor for org-mode files. editor org-mode swift

Tests/OrgCoreTests/BacklinkTests.swift

main
orgstar/Tests/OrgCoreTests/BacklinkTests.swift history · blame · raw

25 lines · 1480 bytes

3 symbols in this file
 1import Testing
 2@testable import OrgCore
 3
 4struct BacklinkTests {
 5    let heading = Backlinks.Target(path: "/notes/a.org", title: "Fix the sink [1/2]", id: "abc-1", customID: "sink")
 6    let file = Backlinks.Target(path: "/notes/a.org")
 7
 8    @Test func followsLinksAsOrgDoes() {
 9        func links(_ link: String, from source: String = "/notes/b.org", to target: Backlinks.Target) -> Bool {
10            Backlinks.links(link, from: source, to: target, home: "/home")
11        }
12        #expect(links("id:abc-1", to: heading) && !links("id:abc-2", to: heading) && !links("id:abc-1", to: file))
13        #expect(links("file:a.org::*Fix the sink", to: heading))
14        #expect(links("file:./a.org::#sink", to: heading))
15        #expect(links("file:/notes/a.org", to: file) && !links("file:/notes/a.org", to: heading))
16        #expect(links("./a.org", to: file) && links("../notes/a.org::*Fix the sink", to: heading))
17        #expect(links("file:sub/../a.org", to: file))
18        #expect(!links("file:c.org::*Fix the sink", to: heading) && !links("https://a.org", to: file))
19        #expect(links("~/x.org", from: "/notes/b.org", to: Backlinks.Target(path: "/home/x.org")))
20        // Within the file.
21        #expect(links("*Fix the sink", from: "/notes/a.org", to: heading) && links("#sink", from: "/notes/a.org", to: heading))
22        #expect(links("Fix the sink", from: "/notes/a.org", to: heading))
23        #expect(!links("*Fix the sink", from: "/notes/b.org", to: heading))
24    }
25}