aboutsummaryrefslogtreecommitdiff
path: root/HutchTests/RepositorySettingsViewModelTests.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-04-20 13:04:57 -0500
committerChristian Cleberg <[email protected]>2026-04-20 13:04:57 -0500
commit8b73fd9cd43753b36b3ab3ca5e4dc83a47ea3480 (patch)
tree25658dbdc28775764f5745576c240efd38fd4685 /HutchTests/RepositorySettingsViewModelTests.swift
parentd29fbef60abdffaee190b758530dde9212745ed2 (diff)
downloadhutch-8b73fd9cd43753b36b3ab3ca5e4dc83a47ea3480.tar.gz
hutch-8b73fd9cd43753b36b3ab3ca5e4dc83a47ea3480.tar.bz2
hutch-8b73fd9cd43753b36b3ab3ca5e4dc83a47ea3480.zip
fix: add mark all read actions and avoid resending unchanged repo metadata
Diffstat (limited to 'HutchTests/RepositorySettingsViewModelTests.swift')
-rw-r--r--HutchTests/RepositorySettingsViewModelTests.swift33
1 files changed, 33 insertions, 0 deletions
diff --git a/HutchTests/RepositorySettingsViewModelTests.swift b/HutchTests/RepositorySettingsViewModelTests.swift
index e64e08f..13d0b21 100644
--- a/HutchTests/RepositorySettingsViewModelTests.swift
+++ b/HutchTests/RepositorySettingsViewModelTests.swift
@@ -115,6 +115,39 @@ struct RepositorySettingsViewModelTests {
#expect(viewModel.isMetadataDirty == false)
}
+ @Test
+ @MainActor
+ func metadataInputOmitsUnchangedNameWhenOnlyDescriptionChanges() {
+ let viewModel = RepositorySettingsViewModel(
+ repository: makeRepository(headName: "refs/heads/main"),
+ branches: [ReferenceDetail(name: "refs/heads/main", target: nil, date: nil)],
+ client: SRHTClient(token: "test-token")
+ )
+ viewModel.editedDescription = "an ios client for sourcehut"
+
+ let input = viewModel.metadataInputForSave()
+
+ #expect(input["name"] == nil)
+ #expect(input["description"] as? String == "an ios client for sourcehut")
+ }
+
+ @Test
+ @MainActor
+ func metadataInputUsesNilToClearDescription() {
+ let viewModel = RepositorySettingsViewModel(
+ repository: makeRepository(headName: "refs/heads/main"),
+ branches: [ReferenceDetail(name: "refs/heads/main", target: nil, date: nil)],
+ client: SRHTClient(token: "test-token")
+ )
+ viewModel.editedDescription = " "
+
+ let input = viewModel.metadataInputForSave()
+
+ #expect(input["name"] == nil)
+ #expect(input.keys.contains("description"))
+ #expect(input["description"] as? String == nil)
+ }
+
@MainActor
private func makeRepository(headName: String?) -> RepositorySummary {
RepositorySummary(