summaryrefslogtreecommitdiff
path: root/HutchTests/TicketListViewModelTests.swift
diff options
context:
space:
mode:
Diffstat (limited to 'HutchTests/TicketListViewModelTests.swift')
-rw-r--r--HutchTests/TicketListViewModelTests.swift41
1 files changed, 39 insertions, 2 deletions
diff --git a/HutchTests/TicketListViewModelTests.swift b/HutchTests/TicketListViewModelTests.swift
index a237071..7fa5449 100644
--- a/HutchTests/TicketListViewModelTests.swift
+++ b/HutchTests/TicketListViewModelTests.swift
@@ -66,6 +66,42 @@ struct TicketListViewModelTests {
}
@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 = [
makeTicket(id: 1, title: "Crash on launch", status: .reported, submitter: "~owner", labels: [makeLabel(id: 1, name: "bug")]),
@@ -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
)
}