diff options
| author | Christian Cleberg <[email protected]> | 2026-04-12 19:58:20 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-04-12 19:58:20 -0500 |
| commit | 9cd99c3e1c7e2620c34bfd9e78931e3b2b63aa8a (patch) | |
| tree | bf7a249bec3b9aba18176e6139d690c9bf384ab5 /HutchTests/ProjectPinStoreTests.swift | |
| parent | 1354f2464180ece6d13296a543a964ddf6d2d393 (diff) | |
| download | hutch-9cd99c3e1c7e2620c34bfd9e78931e3b2b63aa8a.tar.gz hutch-9cd99c3e1c7e2620c34bfd9e78931e3b2b63aa8a.tar.bz2 hutch-9cd99c3e1c7e2620c34bfd9e78931e3b2b63aa8a.zip | |
feat: add projects list, detail view, and home pinning
Implements: https://todo.sr.ht/~ccleberg/hutch/26
Implements: https://todo.sr.ht/~ccleberg/hutch/27
Implements: https://todo.sr.ht/~ccleberg/hutch/28
Diffstat (limited to 'HutchTests/ProjectPinStoreTests.swift')
| -rw-r--r-- | HutchTests/ProjectPinStoreTests.swift | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/HutchTests/ProjectPinStoreTests.swift b/HutchTests/ProjectPinStoreTests.swift new file mode 100644 index 0000000..a4ee0f7 --- /dev/null +++ b/HutchTests/ProjectPinStoreTests.swift @@ -0,0 +1,28 @@ +import Foundation +import Testing +@testable import Hutch + +struct ProjectPinStoreTests { + @Test + func storesPinnedProjectsPerUser() { + let defaults = UserDefaults(suiteName: #function)! + defaults.removePersistentDomain(forName: #function) + + ProjectPinStore.togglePin(projectID: "project-1", for: "~alice", defaults: defaults) + ProjectPinStore.togglePin(projectID: "project-2", for: "~bob", defaults: defaults) + + #expect(ProjectPinStore.loadPinnedProjectIDs(for: "~alice", defaults: defaults) == ["project-1"]) + #expect(ProjectPinStore.loadPinnedProjectIDs(for: "~bob", defaults: defaults) == ["project-2"]) + } + + @Test + func toggleRemovesExistingPin() { + let defaults = UserDefaults(suiteName: #function)! + defaults.removePersistentDomain(forName: #function) + + ProjectPinStore.togglePin(projectID: "project-1", for: "~alice", defaults: defaults) + ProjectPinStore.togglePin(projectID: "project-1", for: "~alice", defaults: defaults) + + #expect(ProjectPinStore.loadPinnedProjectIDs(for: "~alice", defaults: defaults).isEmpty) + } +} |
