11import { afterEach , beforeEach , describe , expect , it , vi } from 'vitest'
22import { act , render } from '@testing-library/react'
33import { Suspense } from 'react'
4- import { queryKey } from '@tanstack/query-test-utils'
4+ import { queryKey , sleep } from '@tanstack/query-test-utils'
55import { QueryClient , QueryClientProvider , useSuspenseQuery } from '..'
66import type { QueryKey } from '..'
77
@@ -21,10 +21,11 @@ function createTestQuery(options: {
2121 return function TestComponent ( ) {
2222 const { data } = useSuspenseQuery ( {
2323 queryKey : options . queryKey ,
24- queryFn : ( ) => {
25- options . fetchCount . count ++
26- return Promise . resolve ( 'data' )
27- } ,
24+ queryFn : ( ) =>
25+ sleep ( 10 ) . then ( ( ) => {
26+ options . fetchCount . count ++
27+ return 'data'
28+ } ) ,
2829 staleTime : options . staleTime ,
2930 } )
3031 return < div > data: { data } </ div >
@@ -60,7 +61,8 @@ describe('Suspense Timer Tests', () => {
6061
6162 const rendered = renderWithSuspense ( queryClient , < TestComponent /> )
6263
63- await act ( ( ) => vi . advanceTimersByTimeAsync ( 0 ) )
64+ expect ( rendered . getByText ( 'loading' ) ) . toBeInTheDocument ( )
65+ await act ( ( ) => vi . advanceTimersByTimeAsync ( 10 ) )
6466 expect ( rendered . getByText ( 'data: data' ) ) . toBeInTheDocument ( )
6567
6668 rendered . rerender (
@@ -85,7 +87,8 @@ describe('Suspense Timer Tests', () => {
8587
8688 const rendered = renderWithSuspense ( queryClient , < TestComponent /> )
8789
88- await act ( ( ) => vi . advanceTimersByTimeAsync ( 0 ) )
90+ expect ( rendered . getByText ( 'loading' ) ) . toBeInTheDocument ( )
91+ await act ( ( ) => vi . advanceTimersByTimeAsync ( 10 ) )
8992 expect ( rendered . getByText ( 'data: data' ) ) . toBeInTheDocument ( )
9093
9194 rendered . rerender (
@@ -110,7 +113,8 @@ describe('Suspense Timer Tests', () => {
110113
111114 const rendered = renderWithSuspense ( queryClient , < TestComponent /> )
112115
113- await act ( ( ) => vi . advanceTimersByTimeAsync ( 0 ) )
116+ expect ( rendered . getByText ( 'loading' ) ) . toBeInTheDocument ( )
117+ await act ( ( ) => vi . advanceTimersByTimeAsync ( 10 ) )
114118 expect ( rendered . getByText ( 'data: data' ) ) . toBeInTheDocument ( )
115119
116120 rendered . rerender (
@@ -135,7 +139,8 @@ describe('Suspense Timer Tests', () => {
135139
136140 const rendered = renderWithSuspense ( queryClient , < TestComponent /> )
137141
138- await act ( ( ) => vi . advanceTimersByTimeAsync ( 0 ) )
142+ expect ( rendered . getByText ( 'loading' ) ) . toBeInTheDocument ( )
143+ await act ( ( ) => vi . advanceTimersByTimeAsync ( 10 ) )
139144 expect ( rendered . getByText ( 'data: data' ) ) . toBeInTheDocument ( )
140145
141146 rendered . rerender (
@@ -160,7 +165,8 @@ describe('Suspense Timer Tests', () => {
160165
161166 const rendered = renderWithSuspense ( queryClient , < TestComponent /> )
162167
163- await act ( ( ) => vi . advanceTimersByTimeAsync ( 0 ) )
168+ expect ( rendered . getByText ( 'loading' ) ) . toBeInTheDocument ( )
169+ await act ( ( ) => vi . advanceTimersByTimeAsync ( 10 ) )
164170 expect ( rendered . getByText ( 'data: data' ) ) . toBeInTheDocument ( )
165171
166172 rendered . rerender (
0 commit comments