krz/hutch
an ios client for sourcehut
clone: git clone https://gitbay.org/krz/hutch.git
v3.11.0: HutchTests/RecentActivityStoreTests.swift · raw
1import Foundation
2import Testing
3@testable import Hutch
4
5struct RecentActivityStoreTests {
6 @Test
7 func removeDropsMatchingEntryKeepingOthers() {
8 let defaults = UserDefaults(suiteName: #function)!
9 defaults.removePersistentDomain(forName: #function)
10
11 RecentActivityStore.recordBuild(jobId: 1, title: "Build 1", defaults: defaults)
12 RecentActivityStore.recordBuild(jobId: 2, title: "Build 2", defaults: defaults)
13
14 RecentActivityStore.remove(id: "build:1", defaults: defaults)
15
16 let remaining = RecentActivityStore.load(defaults: defaults)
17 #expect(remaining.map(\.id) == ["build:2"])
18 }
19
20 @Test
21 func clearRemovesAllEntries() {
22 let defaults = UserDefaults(suiteName: #function)!
23 defaults.removePersistentDomain(forName: #function)
24
25 RecentActivityStore.recordBuild(jobId: 1, title: "Build 1", defaults: defaults)
26 RecentActivityStore.recordTicket(
27 ownerUsername: "~alice",
28 trackerName: "hutch",
29 ticketId: 42,
30 title: "A ticket",
31 defaults: defaults
32 )
33
34 RecentActivityStore.clear(defaults: defaults)
35
36 #expect(RecentActivityStore.load(defaults: defaults).isEmpty)
37 }
38}