diff options
| author | Christian Cleberg <[email protected]> | 2026-04-13 19:44:44 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-04-13 19:44:44 -0500 |
| commit | fe1ccc69661603d419a642a450e4ac9e1258adb0 (patch) | |
| tree | 386455b6b5468abdd9dfa46dd4802b10da8b77a2 /HutchTests/DeepLinkTests.swift | |
| parent | 6ec9754ce34f331641b000eddef3d44bca2631a5 (diff) | |
| download | hutch-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.swift | 26 |
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) } } |
