krz/hutch

an ios client for sourcehut

clone: git clone https://gitbay.org/krz/hutch.git

v3.10.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}