diff options
| author | Christian Cleberg <[email protected]> | 2026-04-12 22:06:16 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-04-12 22:06:16 -0500 |
| commit | 86bcd9452d3107f68aca085e03e69b02667c0dbb (patch) | |
| tree | 8b0adece5cb0f8ffb178eaab2cd12d025c9ebf0a /HutchTests | |
| parent | 31cbca674957eea7ae2529012e20a9d95158e561 (diff) | |
| download | hutch-86bcd9452d3107f68aca085e03e69b02667c0dbb.tar.gz hutch-86bcd9452d3107f68aca085e03e69b02667c0dbb.tar.bz2 hutch-86bcd9452d3107f68aca085e03e69b02667c0dbb.zip | |
feat: polish read-only project views and home integration
Refs: https://todo.sr.ht/~ccleberg/hutch/36
Refs: https://todo.sr.ht/~ccleberg/hutch/37
Refs: https://todo.sr.ht/~ccleberg/hutch/38
Diffstat (limited to 'HutchTests')
| -rw-r--r-- | HutchTests/ProjectPinStoreTests.swift | 13 | ||||
| -rw-r--r-- | HutchTests/ProjectTests.swift | 21 |
2 files changed, 34 insertions, 0 deletions
diff --git a/HutchTests/ProjectPinStoreTests.swift b/HutchTests/ProjectPinStoreTests.swift index a4ee0f7..17b4397 100644 --- a/HutchTests/ProjectPinStoreTests.swift +++ b/HutchTests/ProjectPinStoreTests.swift @@ -25,4 +25,17 @@ struct ProjectPinStoreTests { #expect(ProjectPinStore.loadPinnedProjectIDs(for: "~alice", defaults: defaults).isEmpty) } + + @Test + func loadPinnedProjectsNormalizesWhitespaceAndDuplicates() { + let defaults = UserDefaults(suiteName: #function)! + defaults.removePersistentDomain(forName: #function) + + let encoded = try! JSONEncoder().encode([ + "~alice": [" project-1 ", "", "project-1", "project-2"] + ]) + defaults.set(encoded, forKey: AppStorageKeys.pinnedHomeProjects) + + #expect(ProjectPinStore.loadPinnedProjectIDs(for: "~alice", defaults: defaults) == ["project-1", "project-2"]) + } } diff --git a/HutchTests/ProjectTests.swift b/HutchTests/ProjectTests.swift index b47356e..eff800f 100644 --- a/HutchTests/ProjectTests.swift +++ b/HutchTests/ProjectTests.swift @@ -71,4 +71,25 @@ struct ProjectTests { #expect(project.resourceSummary == "Website linked") } + + @Test + func displayHelpersNormalizeBlankValues() { + let project = Project( + id: "project-1", + name: " ", + description: "\n", + website: "https://example.com", + visibility: .unlisted, + tags: [" docs ", "", "Docs", "ios"], + updated: Date(timeIntervalSince1970: 0), + mailingLists: [], + sources: [], + trackers: [] + ) + + #expect(project.displayName == "Untitled Project") + #expect(project.displayDescription == nil) + #expect(project.displayTags == ["docs", "ios"]) + #expect(project.metadataLine.contains("Unlisted")) + } } |
