@@ -35,13 +35,23 @@ func verifyTodayFetchData<Adapter: TodayStateDriving>(
3535 adapter. todos. count == 5
3636 }
3737
38- #expect( fetchUseCaseSpy. queries. map ( \. dueDateFilter) == [ . withDueDate, . withoutDueDate] )
39- #expect( fetchUseCaseSpy. queries. map ( \. completionFilter) == [ . incomplete, . incomplete] )
40- #expect( fetchUseCaseSpy. queries. map ( \. sortTarget) == [ . dueDate, . updatedAt] )
41- #expect( fetchUseCaseSpy. queries. map ( \. sortOrder) == [ . oldest, . latest] )
42- #expect( fetchUseCaseSpy. queries. map ( \. pageSize) == [ 20 , 20 ] )
43- #expect( fetchUseCaseSpy. queries. map ( \. fetchAllPages) == [ true , true ] )
44- #expect( fetchUseCaseSpy. cursors. allSatisfy { $0 == nil } )
38+ let queries = await fetchUseCaseSpy. calledQueries ( )
39+ let queriesByDueDateFilter = Dictionary (
40+ uniqueKeysWithValues: queries. map { ( $0. dueDateFilter, $0) }
41+ )
42+ let cursors = await fetchUseCaseSpy. calledCursors ( )
43+
44+ #expect( queries. count == 2 )
45+ #expect( Set ( queries. map ( \. dueDateFilter) ) == Set ( [ . withDueDate, . withoutDueDate] ) )
46+ #expect( queries. allSatisfy { $0. completionFilter == . incomplete } )
47+ #expect( queriesByDueDateFilter [ . withDueDate] ? . sortTarget == . dueDate)
48+ #expect( queriesByDueDateFilter [ . withDueDate] ? . sortOrder == . oldest)
49+ #expect( queriesByDueDateFilter [ . withoutDueDate] ? . sortTarget == . updatedAt)
50+ #expect( queriesByDueDateFilter [ . withoutDueDate] ? . sortOrder == . latest)
51+ #expect( queries. map ( \. pageSize) . allSatisfy { $0 == 20 } )
52+ #expect( queries. map ( \. fetchAllPages) . allSatisfy { $0 } )
53+ #expect( cursors. count == 2 )
54+ #expect( cursors. allSatisfy { $0 == nil } )
4555 #expect( adapter. todos. map ( \. id) == [ " focused " , " overdue " , " due-soon " , " later " , " unscheduled " ] )
4656 #expect( adapter. summaryCounts == [
4757 . all: 5 ,
0 commit comments