From 8b73fd9cd43753b36b3ab3ca5e4dc83a47ea3480 Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Mon, 20 Apr 2026 13:04:57 -0500 Subject: fix: add mark all read actions and avoid resending unchanged repo metadata --- HutchTests/RepositorySettingsViewModelTests.swift | 33 +++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'HutchTests/RepositorySettingsViewModelTests.swift') 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( -- cgit v1.2.3