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