@@ -7,19 +7,21 @@ describe('InfiniteQueryObserver', () => {
77 let queryClient : QueryClient
88
99 beforeEach ( ( ) => {
10+ vi . useFakeTimers ( )
1011 queryClient = createQueryClient ( )
1112 queryClient . mount ( )
1213 } )
1314
1415 afterEach ( ( ) => {
1516 queryClient . clear ( )
17+ vi . useRealTimers ( )
1618 } )
1719
1820 test ( 'InfiniteQueryObserver should be able to fetch an infinite query with selector' , async ( ) => {
1921 const key = queryKey ( )
2022 const observer = new InfiniteQueryObserver ( queryClient , {
2123 queryKey : key ,
22- queryFn : ( ) => 1 ,
24+ queryFn : ( ) => sleep ( 10 ) . then ( ( ) => 1 ) ,
2325 select : ( data ) => ( {
2426 pages : data . pages . map ( ( x ) => `${ x } ` ) ,
2527 pageParams : data . pageParams ,
@@ -31,7 +33,7 @@ describe('InfiniteQueryObserver', () => {
3133 const unsubscribe = observer . subscribe ( ( result ) => {
3234 observerResult = result
3335 } )
34- await sleep ( 1 )
36+ await vi . advanceTimersByTimeAsync ( 10 )
3537 unsubscribe ( )
3638 expect ( observerResult ) . toMatchObject ( {
3739 data : { pages : [ '1' ] , pageParams : [ 1 ] } ,
@@ -44,7 +46,7 @@ describe('InfiniteQueryObserver', () => {
4446 }
4547
4648 const key = queryKey ( )
47- const queryFn = vi . fn ( ( ) => 1 )
49+ const queryFn = vi . fn ( ( ) => sleep ( 10 ) . then ( ( ) => 1 ) )
4850 const observer = new InfiniteQueryObserver ( queryClient , {
4951 meta,
5052 queryKey : key ,
@@ -60,7 +62,7 @@ describe('InfiniteQueryObserver', () => {
6062 const unsubscribe = observer . subscribe ( ( result ) => {
6163 observerResult = result
6264 } )
63- await sleep ( 1 )
65+ await vi . advanceTimersByTimeAsync ( 10 )
6466 unsubscribe ( )
6567 expect ( observerResult ) . toMatchObject ( {
6668 data : { pages : [ '1' ] , pageParams : [ 1 ] } ,
@@ -74,7 +76,7 @@ describe('InfiniteQueryObserver', () => {
7476 let all : Array < string > = [ ]
7577 const observer = new InfiniteQueryObserver ( queryClient , {
7678 queryKey : key ,
77- queryFn : ( { pageParam } ) => String ( pageParam ) ,
79+ queryFn : ( { pageParam } ) => sleep ( 10 ) . then ( ( ) => String ( pageParam ) ) ,
7880 initialPageParam : 1 ,
7981 getNextPageParam : ( _ , __ , lastPageParam , allPageParams ) => {
8082 single . push ( 'next' + lastPageParam )
@@ -87,17 +89,21 @@ describe('InfiniteQueryObserver', () => {
8789 return firstPageParam - 1
8890 } ,
8991 } )
92+ await vi . advanceTimersByTimeAsync ( 10 )
9093
91- await observer . fetchNextPage ( )
92- await observer . fetchPreviousPage ( )
94+ observer . fetchNextPage ( )
95+ await vi . advanceTimersByTimeAsync ( 10 )
96+ observer . fetchPreviousPage ( )
97+ await vi . advanceTimersByTimeAsync ( 10 )
9398
9499 expect ( single ) . toEqual ( [ 'next1' , 'prev1' , 'prev1' , 'next1' , 'prev0' ] )
95100 expect ( all ) . toEqual ( [ 'next1' , 'prev1' , 'prev1' , 'next0,1' , 'prev0,1' ] )
96101
97102 single = [ ]
98103 all = [ ]
99104
100- await observer . refetch ( )
105+ observer . refetch ( )
106+ await vi . advanceTimersByTimeAsync ( 20 )
101107
102108 expect ( single ) . toEqual ( [ 'next0' , 'next1' , 'prev0' ] )
103109 expect ( all ) . toEqual ( [ 'next0' , 'next0,1' , 'prev0,1' ] )
@@ -111,17 +117,13 @@ describe('InfiniteQueryObserver', () => {
111117
112118 const observer = new InfiniteQueryObserver ( queryClient , {
113119 queryKey : key ,
114- queryFn : ( { pageParam } ) => String ( pageParam ) ,
120+ queryFn : ( { pageParam } ) => sleep ( 10 ) . then ( ( ) => String ( pageParam ) ) ,
115121 initialPageParam : 1 ,
116122 getNextPageParam : getNextPageParam . mockImplementation (
117- ( _ , __ , lastPageParam ) => {
118- return lastPageParam + 1
119- } ,
123+ ( _ , __ , lastPageParam ) => lastPageParam + 1 ,
120124 ) ,
121125 getPreviousPageParam : getPreviousPageParam . mockImplementation (
122- ( _ , __ , firstPageParam ) => {
123- return firstPageParam - 1
124- } ,
126+ ( _ , __ , firstPageParam ) => firstPageParam - 1 ,
125127 ) ,
126128 } )
127129
@@ -142,7 +144,7 @@ describe('InfiniteQueryObserver', () => {
142144 const key = queryKey ( )
143145 let next : number | undefined = 2
144146 const queryFn = vi . fn < ( ...args : Array < any > ) => any > ( ( { pageParam } ) =>
145- String ( pageParam ) ,
147+ sleep ( 10 ) . then ( ( ) => String ( pageParam ) ) ,
146148 )
147149 const observer = new InfiniteQueryObserver ( queryClient , {
148150 queryKey : key ,
@@ -151,16 +153,19 @@ describe('InfiniteQueryObserver', () => {
151153 getNextPageParam : ( ) => next ,
152154 } )
153155
154- await observer . fetchNextPage ( )
155- await observer . fetchNextPage ( )
156+ observer . fetchNextPage ( )
157+ await vi . advanceTimersByTimeAsync ( 10 )
158+ observer . fetchNextPage ( )
159+ await vi . advanceTimersByTimeAsync ( 10 )
156160
157161 expect ( observer . getCurrentResult ( ) . data ?. pages ) . toEqual ( [ '1' , '2' ] )
158162 expect ( queryFn ) . toBeCalledTimes ( 2 )
159163 expect ( observer . getCurrentResult ( ) . hasNextPage ) . toBe ( true )
160164
161165 next = undefined
162166
163- await observer . refetch ( )
167+ observer . refetch ( )
168+ await vi . advanceTimersByTimeAsync ( 10 )
164169
165170 expect ( observer . getCurrentResult ( ) . data ?. pages ) . toEqual ( [ '1' ] )
166171 expect ( queryFn ) . toBeCalledTimes ( 3 )
@@ -171,7 +176,7 @@ describe('InfiniteQueryObserver', () => {
171176 const key = queryKey ( )
172177 let next : number | null = 2
173178 const queryFn = vi . fn < ( ...args : Array < any > ) => any > ( ( { pageParam } ) =>
174- String ( pageParam ) ,
179+ sleep ( 10 ) . then ( ( ) => String ( pageParam ) ) ,
175180 )
176181 const observer = new InfiniteQueryObserver ( queryClient , {
177182 queryKey : key ,
@@ -180,16 +185,19 @@ describe('InfiniteQueryObserver', () => {
180185 getNextPageParam : ( ) => next ,
181186 } )
182187
183- await observer . fetchNextPage ( )
184- await observer . fetchNextPage ( )
188+ observer . fetchNextPage ( )
189+ await vi . advanceTimersByTimeAsync ( 10 )
190+ observer . fetchNextPage ( )
191+ await vi . advanceTimersByTimeAsync ( 10 )
185192
186193 expect ( observer . getCurrentResult ( ) . data ?. pages ) . toEqual ( [ '1' , '2' ] )
187194 expect ( queryFn ) . toBeCalledTimes ( 2 )
188195 expect ( observer . getCurrentResult ( ) . hasNextPage ) . toBe ( true )
189196
190197 next = null
191198
192- await observer . refetch ( )
199+ observer . refetch ( )
200+ await vi . advanceTimersByTimeAsync ( 10 )
193201
194202 expect ( observer . getCurrentResult ( ) . data ?. pages ) . toEqual ( [ '1' ] )
195203 expect ( queryFn ) . toBeCalledTimes ( 3 )
0 commit comments