From 72f860e0e171f6aac4e7d896e7a571147dbcb5c5 Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Sun, 12 Apr 2026 22:52:33 -0500 Subject: feat: add search and recent queries Implements: https://todo.sr.ht/~ccleberg/hutch/47 Implements: https://todo.sr.ht/~ccleberg/hutch/48 --- HutchTests/TicketListViewModelTests.swift | 41 +++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) (limited to 'HutchTests/TicketListViewModelTests.swift') diff --git a/HutchTests/TicketListViewModelTests.swift b/HutchTests/TicketListViewModelTests.swift index a237071..7fa5449 100644 --- a/HutchTests/TicketListViewModelTests.swift +++ b/HutchTests/TicketListViewModelTests.swift @@ -65,6 +65,42 @@ struct TicketListViewModelTests { #expect(labelMatches.map(\.id) == [1]) } + @Test + func filteredTicketsMatchesAssigneeAndStatus() { + let tickets = [ + makeTicket( + id: 1, + title: "Crash on launch", + status: .inProgress, + submitter: "~owner", + labels: [], + assignees: [Entity(canonicalName: "~alice")] + ), + makeTicket( + id: 2, + title: "Settings polish", + status: .resolved, + submitter: "~owner", + labels: [], + assignees: [] + ) + ] + + let assigneeMatches = filterTickets( + tickets, + state: TicketListFilterState(status: .all), + query: "~alice" + ) + let statusMatches = filterTickets( + tickets, + state: TicketListFilterState(status: .all), + query: "resolved" + ) + + #expect(assigneeMatches.map(\.id) == [1]) + #expect(statusMatches.map(\.id) == [2]) + } + @Test func filteredTicketsMatchesAnySelectedLabel() { let tickets = [ @@ -153,7 +189,8 @@ struct TicketListViewModelTests { title: String, status: TicketStatus, submitter: String, - labels: [TicketLabel] + labels: [TicketLabel], + assignees: [Entity] = [] ) -> TicketSummary { TicketSummary( id: id, @@ -163,7 +200,7 @@ struct TicketListViewModelTests { created: Date(), submitter: Entity(canonicalName: submitter), labels: labels, - assignees: [] + assignees: assignees ) } -- cgit v1.2.3