summaryrefslogtreecommitdiff
path: root/HutchTests/BuildListViewModelTests.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-04-12 00:34:54 -0500
committerChristian Cleberg <[email protected]>2026-04-12 00:34:54 -0500
commit5f6d545eb3455a9e4da5a3cb4460811e3a48d939 (patch)
tree7b7591146da4e02bd617ddb9f26e47b1c4474ef6 /HutchTests/BuildListViewModelTests.swift
parentcb1ea5ea4f163d87053285d3fb7999b12a3558b9 (diff)
downloadhutch-5f6d545eb3455a9e4da5a3cb4460811e3a48d939.tar.gz
hutch-5f6d545eb3455a9e4da5a3cb4460811e3a48d939.tar.bz2
hutch-5f6d545eb3455a9e4da5a3cb4460811e3a48d939.zip
improve home attention flows and cross-linkingv2.14.0
Diffstat (limited to 'HutchTests/BuildListViewModelTests.swift')
-rw-r--r--HutchTests/BuildListViewModelTests.swift20
1 files changed, 18 insertions, 2 deletions
diff --git a/HutchTests/BuildListViewModelTests.swift b/HutchTests/BuildListViewModelTests.swift
index a5c2483..a8cdc30 100644
--- a/HutchTests/BuildListViewModelTests.swift
+++ b/HutchTests/BuildListViewModelTests.swift
@@ -28,6 +28,22 @@ struct BuildListViewModelTests {
#expect(filtered.map(\.id) == [42])
}
+ @Test
+ func buildFilterPrioritizesActionableStates() {
+ let jobs = [
+ makeJob(id: 1, status: .success, tags: []),
+ makeJob(id: 2, status: .failed, tags: []),
+ makeJob(id: 3, status: .running, tags: []),
+ makeJob(id: 4, status: .cancelled, tags: [])
+ ]
+
+ let attention = BuildListViewModel.filterJobs(jobs, filter: .attention)
+ let active = BuildListViewModel.filterJobs(jobs, filter: .active)
+
+ #expect(attention.map(\.id) == [2, 3])
+ #expect(active.map(\.id) == [3])
+ }
+
private func filterJobs(_ jobs: [JobSummary], query: String) -> [JobSummary] {
let q = query.trimmingCharacters(in: .whitespacesAndNewlines).lowercased()
guard !q.isEmpty else { return jobs }
@@ -39,12 +55,12 @@ struct BuildListViewModelTests {
}
}
- private func makeJob(id: Int, tags: [String]) -> JobSummary {
+ private func makeJob(id: Int, status: JobStatus = .success, tags: [String]) -> JobSummary {
JobSummary(
id: id,
created: Date(),
updated: Date(),
- status: .success,
+ status: status,
note: nil,
tags: tags,
visibility: nil,