summaryrefslogtreecommitdiff
path: root/HutchTests/DeepLinkTests.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-04-13 19:44:44 -0500
committerChristian Cleberg <[email protected]>2026-04-13 19:44:44 -0500
commitfe1ccc69661603d419a642a450e4ac9e1258adb0 (patch)
tree386455b6b5468abdd9dfa46dd4802b10da8b77a2 /HutchTests/DeepLinkTests.swift
parent6ec9754ce34f331641b000eddef3d44bca2631a5 (diff)
downloadhutch-fe1ccc69661603d419a642a450e4ac9e1258adb0.tar.gz
hutch-fe1ccc69661603d419a642a450e4ac9e1258adb0.tar.bz2
hutch-fe1ccc69661603d419a642a450e4ac9e1258adb0.zip
fix: centralize URLs, tighten models, and polish SwiftUI bindingsv3.1.3
- Add shared HutchDeepLinkURL constants for app, widgets, and tests. - Bump marketing version to 3.1.2 and build to 70 (app + widget extension). - Point Hutch stats default base URL at HutchStatsAPI; add SRHTWebURL status incident feed and reuse it from SystemStatusService. - Group Project into Metadata and Resources; split ContributionStatsResponse into StatsWindow and StatsTotals with updated decoding and tests. - Replace @Bindable usage with explicit Bindings in Profile, Projects list, and repository ACL flows; simplify Home pinned-item helper; add no-op bodies on cancel alert buttons where the compiler requires a statement. - Move repository row build-status indicator next to the relative-updated caption and reserve a fixed 8×8 slot so the row does not jump when status loads. - Use NSString.lastPathComponent for build artifact filenames; collapse duplicate ACL error branches; minor HutchStats HTTP and XMLParserDelegate cleanups. - Point widgets at HutchDeepLinkURL helpers; align tests with the new response and URL types.
Diffstat (limited to 'HutchTests/DeepLinkTests.swift')
-rw-r--r--HutchTests/DeepLinkTests.swift26
1 files changed, 13 insertions, 13 deletions
diff --git a/HutchTests/DeepLinkTests.swift b/HutchTests/DeepLinkTests.swift
index 12f759b..c57cfce 100644
--- a/HutchTests/DeepLinkTests.swift
+++ b/HutchTests/DeepLinkTests.swift
@@ -6,61 +6,61 @@ struct DeepLinkTests {
@Test
func parsesHomeLink() {
- let link = DeepLink(url: URL(string: "hutch://home")!)
+ let link = DeepLink(url: HutchDeepLinkURL.home)
#expect(link == .home)
}
@Test
func parsesNilPathAsHome() {
- let link = DeepLink(url: URL(string: "hutch://")!)
+ let link = DeepLink(url: HutchDeepLinkURL.emptyHost)
#expect(link == .home)
}
@Test
func parsesRepositoryLink() {
- let link = DeepLink(url: URL(string: "hutch://git/~user/repo")!)
+ let link = DeepLink(url: HutchDeepLinkURL.repositoryGit)
#expect(link == .repository(owner: "~user", repo: "repo"))
}
@Test
func parsesTicketLink() {
- let link = DeepLink(url: URL(string: "hutch://todo/~owner/tracker/42")!)
+ let link = DeepLink(url: HutchDeepLinkURL.ticket)
#expect(link == .ticket(owner: "~owner", tracker: "tracker", ticketId: 42))
}
@Test
func parsesBuildJobLink() {
- let link = DeepLink(url: URL(string: "hutch://builds/12345")!)
+ let link = DeepLink(url: HutchDeepLinkURL.buildJob)
#expect(link == .build(jobId: 12345))
}
@Test
func parsesBuildsTabLink() {
- let link = DeepLink(url: URL(string: "hutch://builds")!)
+ let link = DeepLink(url: HutchDeepLinkURL.builds)
#expect(link == .buildsTab)
}
@Test
func parsesRepositoriesTabLink() {
- let link = DeepLink(url: URL(string: "hutch://repositories")!)
+ let link = DeepLink(url: HutchDeepLinkURL.repositories)
#expect(link == .repositoriesTab)
}
@Test
func parsesTrackersTabLink() {
- let link = DeepLink(url: URL(string: "hutch://trackers")!)
+ let link = DeepLink(url: HutchDeepLinkURL.trackers)
#expect(link == .trackersTab)
}
@Test
func parsesSystemStatusLink() {
- let link = DeepLink(url: URL(string: "hutch://status")!)
+ let link = DeepLink(url: HutchDeepLinkURL.status)
#expect(link == .systemStatus)
}
@Test
func parsesLookupLink() {
- let link = DeepLink(url: URL(string: "hutch://lookup")!)
+ let link = DeepLink(url: HutchDeepLinkURL.lookup)
#expect(link == .lookup)
}
@@ -72,19 +72,19 @@ struct DeepLinkTests {
@Test
func rejectsUnknownPath() {
- let link = DeepLink(url: URL(string: "hutch://unknown")!)
+ let link = DeepLink(url: HutchDeepLinkURL.unknown)
#expect(link == nil)
}
@Test
func rejectsTicketLinkWithNonNumericId() {
- let link = DeepLink(url: URL(string: "hutch://todo/~owner/tracker/abc")!)
+ let link = DeepLink(url: HutchDeepLinkURL.invalidTicketId)
#expect(link == nil)
}
@Test
func rejectsBuildLinkWithNonNumericId() {
- let link = DeepLink(url: URL(string: "hutch://builds/abc")!)
+ let link = DeepLink(url: HutchDeepLinkURL.invalidBuildId)
#expect(link == nil)
}
}