diff options
Diffstat (limited to 'Tests/NorgUITests/NorgLinkURLTests.swift')
| -rw-r--r-- | Tests/NorgUITests/NorgLinkURLTests.swift | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Tests/NorgUITests/NorgLinkURLTests.swift b/Tests/NorgUITests/NorgLinkURLTests.swift new file mode 100644 index 0000000..dcd5446 --- /dev/null +++ b/Tests/NorgUITests/NorgLinkURLTests.swift @@ -0,0 +1,30 @@ +import Foundation +import NorgKit +import Testing + +@testable import NorgUI + +@Suite struct NorgLinkURLTests { + @Test func roundTripsLink() throws { + let link = InlineLink(kind: .link, target: "* My Heading") + let url = try #require(NorgLinkURL.encode(link)) + #expect(NorgLinkURL.decode(url) == link) + } + + @Test func roundTripsAnchor() throws { + let link = InlineLink(kind: .anchor, target: "some anchor") + let url = try #require(NorgLinkURL.encode(link)) + #expect(NorgLinkURL.decode(url) == link) + } + + @Test func roundTripsMissingTarget() throws { + let link = InlineLink(kind: .link, target: nil) + let url = try #require(NorgLinkURL.encode(link)) + #expect(NorgLinkURL.decode(url) == link) + } + + @Test func ignoresForeignURLs() throws { + let url = try #require(URL(string: "https://example.com")) + #expect(NorgLinkURL.decode(url) == nil) + } +} |