summaryrefslogtreecommitdiff
path: root/HutchTests/ProjectPinStoreTests.swift
diff options
context:
space:
mode:
Diffstat (limited to 'HutchTests/ProjectPinStoreTests.swift')
-rw-r--r--HutchTests/ProjectPinStoreTests.swift13
1 files changed, 13 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"])
+ }
}