Skip to content

Commit a41178d

Browse files
authored
test(query-core/queriesObserver): add test for subscribing new observers when a query is added while subscribed (#10246)
* test(query-core/queriesObserver): add test for subscribing new observers when a query is added while subscribed * ci: re-trigger CI
1 parent 9ced469 commit a41178d

1 file changed

Lines changed: 40 additions & 0 deletions

File tree

packages/query-core/src/__tests__/queriesObserver.test.tsx

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,4 +546,44 @@ describe('queriesObserver', () => {
546546

547547
trackPropSpy.mockRestore()
548548
})
549+
550+
test('should subscribe to new observers when a query is added while subscribed', async () => {
551+
const key1 = queryKey()
552+
const key2 = queryKey()
553+
const key3 = queryKey()
554+
const queryFn1 = vi.fn().mockReturnValue(1)
555+
const queryFn2 = vi.fn().mockReturnValue(2)
556+
const queryFn3 = vi.fn(() => sleep(10).then(() => 3))
557+
const observer = new QueriesObserver(queryClient, [
558+
{ queryKey: key1, queryFn: queryFn1 },
559+
{ queryKey: key2, queryFn: queryFn2 },
560+
])
561+
const results: Array<Array<QueryObserverResult>> = []
562+
const unsubscribe = observer.subscribe((result) => {
563+
results.push(result)
564+
})
565+
566+
await vi.advanceTimersByTimeAsync(0)
567+
568+
expect(results[results.length - 1]).toMatchObject([
569+
{ status: 'success', data: 1 },
570+
{ status: 'success', data: 2 },
571+
])
572+
573+
observer.setQueries([
574+
{ queryKey: key1, queryFn: queryFn1 },
575+
{ queryKey: key2, queryFn: queryFn2 },
576+
{ queryKey: key3, queryFn: queryFn3 },
577+
])
578+
579+
await vi.advanceTimersByTimeAsync(10)
580+
581+
unsubscribe()
582+
583+
expect(results[results.length - 1]).toMatchObject([
584+
{ status: 'success', data: 1 },
585+
{ status: 'success', data: 2 },
586+
{ status: 'success', data: 3 },
587+
])
588+
})
549589
})

0 commit comments

Comments
 (0)