aboutsummaryrefslogtreecommitdiff
path: root/Tests/NorgUITests/NorgLinkURLTests.swift
diff options
context:
space:
mode:
authorRuben Beltran del Rio <jj@r.bdr.sh>2026-06-15 14:35:36 +0200
committerRuben Beltran del Rio <jj@r.bdr.sh>2026-06-16 14:47:30 +0200
commit657aa83a5ca24dc35572c040df64a0abb85e8612 (patch)
treefe0b6fd425d8cad9dc6a28ada4ad8600e42b367e /Tests/NorgUITests/NorgLinkURLTests.swift
Initial extraction from Norganize
Diffstat (limited to 'Tests/NorgUITests/NorgLinkURLTests.swift')
-rw-r--r--Tests/NorgUITests/NorgLinkURLTests.swift30
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)
+ }
+}