summaryrefslogtreecommitdiff
path: root/HutchTests
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-08-07 02:24:43 -0500
committerGitHub <[email protected]>2026-08-07 02:24:43 -0500
commit0a3e55c15cfb9ce1bd3df0c7b352760bc2ee33c3 (patch)
tree7137471dd7cdd5583db4ffbead31414497c431a9 /HutchTests
parentfbcb4113f110a7db9cf21d18510cb59c2e90ba23 (diff)
parent1c4e968c31ee451666a65e05c762c9422c768426 (diff)
downloadhutch-0a3e55c15cfb9ce1bd3df0c7b352760bc2ee33c3.tar.gz
hutch-0a3e55c15cfb9ce1bd3df0c7b352760bc2ee33c3.tar.bz2
hutch-0a3e55c15cfb9ce1bd3df0c7b352760bc2ee33c3.zip
Merge pull request #29 from krazywarez/issues-9-11-18
Fix checklist rendering, add clear-recent-activity, speed up pull-to-refresh
Diffstat (limited to 'HutchTests')
-rw-r--r--HutchTests/RecentActivityStoreTests.swift38
1 files changed, 38 insertions, 0 deletions
diff --git a/HutchTests/RecentActivityStoreTests.swift b/HutchTests/RecentActivityStoreTests.swift
new file mode 100644
index 0000000..e6fcc04
--- /dev/null
+++ b/HutchTests/RecentActivityStoreTests.swift
@@ -0,0 +1,38 @@
+import Foundation
+import Testing
+@testable import Hutch
+
+struct RecentActivityStoreTests {
+ @Test
+ func removeDropsMatchingEntryKeepingOthers() {
+ let defaults = UserDefaults(suiteName: #function)!
+ defaults.removePersistentDomain(forName: #function)
+
+ RecentActivityStore.recordBuild(jobId: 1, title: "Build 1", defaults: defaults)
+ RecentActivityStore.recordBuild(jobId: 2, title: "Build 2", defaults: defaults)
+
+ RecentActivityStore.remove(id: "build:1", defaults: defaults)
+
+ let remaining = RecentActivityStore.load(defaults: defaults)
+ #expect(remaining.map(\.id) == ["build:2"])
+ }
+
+ @Test
+ func clearRemovesAllEntries() {
+ let defaults = UserDefaults(suiteName: #function)!
+ defaults.removePersistentDomain(forName: #function)
+
+ RecentActivityStore.recordBuild(jobId: 1, title: "Build 1", defaults: defaults)
+ RecentActivityStore.recordTicket(
+ ownerUsername: "~alice",
+ trackerName: "hutch",
+ ticketId: 42,
+ title: "A ticket",
+ defaults: defaults
+ )
+
+ RecentActivityStore.clear(defaults: defaults)
+
+ #expect(RecentActivityStore.load(defaults: defaults).isEmpty)
+ }
+}