krz/hutch

an ios client for sourcehut

clone: git clone https://gitbay.org/krz/hutch.git

ce1a59205b30518ee11d99ac043e15d83c27cce2

verified · cmc

author: Christian Cleberg <hello@cleberg.net> · 2026-04-12T04:36:36Z

Fix stale tests for current Swift concurrency model
 HutchTests/HomeViewModelTests.swift               | 11 ++++++++++-
 HutchTests/ProjectTests.swift                     |  2 ++
 HutchTests/RepositorySettingsViewModelTests.swift |  8 +++++---
 HutchTests/TrackerManagementViewModelTests.swift  |  2 ++
 4 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/HutchTests/HomeViewModelTests.swift b/HutchTests/HomeViewModelTests.swift
index 5475bdd..fef93e0 100644
--- a/HutchTests/HomeViewModelTests.swift
+++ b/HutchTests/HomeViewModelTests.swift
@@ -22,10 +22,19 @@ struct HomeViewModelTests {
     func matchesCurrentUserAssigneeNormalizesCanonicalNameAndUsername() {
         let currentUser = User(
             id: 42,
+            created: nil,
+            updated: nil,
             username: "owner",
             canonicalName: "~owner",
             email: "owner@example.com",
-            avatar: nil
+            url: nil,
+            location: nil,
+            bio: nil,
+            avatar: nil,
+            pronouns: nil,
+            userType: nil,
+            receivesPaidServices: nil,
+            suspensionNotice: nil
         )
 
         #expect(HomeViewModel.matchesCurrentUserAssignee(Entity(canonicalName: "~owner"), currentUser: currentUser))
diff --git a/HutchTests/ProjectTests.swift b/HutchTests/ProjectTests.swift
index a94d6d2..b47356e 100644
--- a/HutchTests/ProjectTests.swift
+++ b/HutchTests/ProjectTests.swift
@@ -12,6 +12,7 @@ struct ProjectTests {
             website: nil,
             visibility: .public,
             tags: [],
+            updated: Date(timeIntervalSince1970: 0),
             mailingLists: [
                 Project.MailingList(
                     id: "list-1",
@@ -62,6 +63,7 @@ struct ProjectTests {
             website: "https://example.com",
             visibility: .public,
             tags: [],
+            updated: Date(timeIntervalSince1970: 0),
             mailingLists: [],
             sources: [],
             trackers: []
diff --git a/HutchTests/RepositorySettingsViewModelTests.swift b/HutchTests/RepositorySettingsViewModelTests.swift
index a2c88ce..f211bab 100644
--- a/HutchTests/RepositorySettingsViewModelTests.swift
+++ b/HutchTests/RepositorySettingsViewModelTests.swift
@@ -33,6 +33,7 @@ struct RepositorySettingsViewModelTests {
     }
 
     @Test
+    @MainActor
     func gitCanonicalEntityAddsMissingTilde() {
         #expect(RepositorySettingsViewModel.gitCanonicalEntity(from: "alice") == "~alice")
         #expect(RepositorySettingsViewModel.gitCanonicalEntity(from: "~alice") == "~alice")
@@ -40,6 +41,7 @@ struct RepositorySettingsViewModelTests {
     }
 
     @Test
+    @MainActor
     func gitHeadReferenceUsesFullBranchRef() {
         #expect(RepositorySettingsViewModel.gitHeadReference(from: "main") == "refs/heads/main")
         #expect(RepositorySettingsViewModel.gitHeadReference(from: " refs/heads/dev ") == "refs/heads/dev")
@@ -50,7 +52,7 @@ struct RepositorySettingsViewModelTests {
     func unchangedHeadIsOmittedFromSaveInput() {
         let viewModel = RepositorySettingsViewModel(
             repository: makeRepository(headName: "refs/heads/main"),
-            branches: [Reference(name: "refs/heads/main", target: nil)],
+            branches: [ReferenceDetail(name: "refs/heads/main", target: nil, date: nil)],
             client: SRHTClient(token: "test-token")
         )
 
@@ -63,8 +65,8 @@ struct RepositorySettingsViewModelTests {
         let viewModel = RepositorySettingsViewModel(
             repository: makeRepository(headName: "refs/heads/main"),
             branches: [
-                Reference(name: "refs/heads/main", target: nil),
-                Reference(name: "refs/heads/dev", target: nil)
+                ReferenceDetail(name: "refs/heads/main", target: nil, date: nil),
+                ReferenceDetail(name: "refs/heads/dev", target: nil, date: nil)
             ],
             client: SRHTClient(token: "test-token")
         )
diff --git a/HutchTests/TrackerManagementViewModelTests.swift b/HutchTests/TrackerManagementViewModelTests.swift
index 78edfc9..531608c 100644
--- a/HutchTests/TrackerManagementViewModelTests.swift
+++ b/HutchTests/TrackerManagementViewModelTests.swift
@@ -4,12 +4,14 @@ import Testing
 struct TrackerManagementViewModelTests {
 
     @Test
+    @MainActor
     func normalizedUsernameStripsLeadingTildeAndWhitespace() {
         #expect(TrackerManagementViewModel.normalizedUsername("  ~alice  ") == "alice")
         #expect(TrackerManagementViewModel.normalizedUsername("bob") == "bob")
     }
 
     @Test
+    @MainActor
     func hexColorValidationRequiresPoundAndSixHexDigits() {
         #expect(TrackerManagementViewModel.isValidHexColor("#a1B2c3"))
         #expect(!TrackerManagementViewModel.isValidHexColor("a1B2c3"))