diff options
| author | Christian Cleberg <[email protected]> | 2026-04-12 22:52:33 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-04-12 22:52:33 -0500 |
| commit | 72f860e0e171f6aac4e7d896e7a571147dbcb5c5 (patch) | |
| tree | c62c9c9325292f65e6f72372a38b35760cc937b1 /HutchTests/BuildListViewModelTests.swift | |
| parent | 576bb6c2432a15f5138771c06019b55fd2244e15 (diff) | |
| download | hutch-72f860e0e171f6aac4e7d896e7a571147dbcb5c5.tar.gz hutch-72f860e0e171f6aac4e7d896e7a571147dbcb5c5.tar.bz2 hutch-72f860e0e171f6aac4e7d896e7a571147dbcb5c5.zip | |
feat: add search and recent queries
Implements: https://todo.sr.ht/~ccleberg/hutch/47
Implements: https://todo.sr.ht/~ccleberg/hutch/48
Diffstat (limited to 'HutchTests/BuildListViewModelTests.swift')
| -rw-r--r-- | HutchTests/BuildListViewModelTests.swift | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/HutchTests/BuildListViewModelTests.swift b/HutchTests/BuildListViewModelTests.swift index a8cdc30..fccd7cf 100644 --- a/HutchTests/BuildListViewModelTests.swift +++ b/HutchTests/BuildListViewModelTests.swift @@ -29,6 +29,18 @@ struct BuildListViewModelTests { } @Test + func filteredJobsMatchesByStatus() { + let jobs = [ + makeJob(id: 1, status: .running, tags: []), + makeJob(id: 2, status: .success, tags: []) + ] + + let filtered = filterJobs(jobs, query: "running") + + #expect(filtered.map(\.id) == [1]) + } + + @Test func buildFilterPrioritizesActionableStates() { let jobs = [ makeJob(id: 1, status: .success, tags: []), @@ -45,14 +57,7 @@ struct BuildListViewModelTests { } private func filterJobs(_ jobs: [JobSummary], query: String) -> [JobSummary] { - let q = query.trimmingCharacters(in: .whitespacesAndNewlines).lowercased() - guard !q.isEmpty else { return jobs } - return jobs.filter { - String($0.id).contains(q) || - $0.tags.contains { $0.lowercased().contains(q) } || - ($0.note?.lowercased().contains(q) == true) || - ($0.image?.lowercased().contains(q) == true) - } + BuildListViewModel.searchJobs(jobs, matching: query) } private func makeJob(id: Int, status: JobStatus = .success, tags: [String]) -> JobSummary { |
