@@ -280,73 +280,33 @@ describe('useQueries', () => {
280280
281281 states . push ( result )
282282
283- React . useEffect ( ( ) => {
284- setActTimeout ( ( ) => {
285- setSeries2 ( 3 )
286- } , 20 )
287- } , [ ] )
288-
289- React . useEffect ( ( ) => {
290- setActTimeout ( ( ) => {
291- setSeries1 ( 2 )
292- } , 50 )
293- } , [ ] )
283+ const isFetching = result . some ( r => r . isFetching )
294284
295- return null
285+ return (
286+ < div >
287+ < div >
288+ data1: { result [ 0 ] ?. data ?? 'null' } , data2:{ ' ' }
289+ { result [ 1 ] ?. data ?? 'null' }
290+ </ div >
291+ < div > isFetching: { String ( isFetching ) } </ div >
292+ < button onClick = { ( ) => setSeries2 ( 3 ) } > setSeries2</ button >
293+ < button onClick = { ( ) => setSeries1 ( 2 ) } > setSeries1</ button >
294+ </ div >
295+ )
296296 }
297297
298- renderWithClient ( queryClient , < Page /> )
298+ const rendered = renderWithClient ( queryClient , < Page /> )
299299
300- await waitFor ( ( ) => expect ( states . length ) . toBe ( 9 ) )
300+ await waitFor ( ( ) => rendered . getByText ( 'data1: 5, data2: 10' ) )
301+ rendered . getByRole ( 'button' , { name : / s e t S e r i e s 2 / i } ) . click ( )
301302
302- expect ( states [ 0 ] ) . toMatchObject ( [
303- {
304- status : 'loading' ,
305- data : undefined ,
306- isPreviousData : false ,
307- isFetching : true ,
308- } ,
309- {
310- status : 'loading' ,
311- data : undefined ,
312- isPreviousData : false ,
313- isFetching : true ,
314- } ,
315- ] )
316- expect ( states [ 1 ] ) . toMatchObject ( [
317- { status : 'success' , data : 5 , isPreviousData : false , isFetching : false } ,
318- {
319- status : 'loading' ,
320- data : undefined ,
321- isPreviousData : false ,
322- isFetching : true ,
323- } ,
324- ] )
325- expect ( states [ 2 ] ) . toMatchObject ( [
326- { status : 'success' , data : 5 , isPreviousData : false , isFetching : false } ,
327- { status : 'success' , data : 10 , isPreviousData : false , isFetching : false } ,
328- ] )
329- expect ( states [ 3 ] ) . toMatchObject ( [
330- { status : 'success' , data : 5 , isPreviousData : false , isFetching : false } ,
331- { status : 'success' , data : 10 , isPreviousData : true , isFetching : true } ,
332- ] )
333- expect ( states [ 4 ] ) . toMatchObject ( [
334- { status : 'success' , data : 5 , isPreviousData : false , isFetching : false } ,
335- { status : 'success' , data : 10 , isPreviousData : true , isFetching : true } ,
336- ] )
337- expect ( states [ 5 ] ) . toMatchObject ( [
338- { status : 'success' , data : 5 , isPreviousData : false , isFetching : false } ,
339- { status : 'success' , data : 15 , isPreviousData : false , isFetching : false } ,
340- ] )
341- expect ( states [ 6 ] ) . toMatchObject ( [
342- { status : 'success' , data : 10 , isPreviousData : false , isFetching : true } ,
343- { status : 'success' , data : 15 , isPreviousData : false , isFetching : false } ,
344- ] )
345- expect ( states [ 7 ] ) . toMatchObject ( [
346- { status : 'success' , data : 10 , isPreviousData : false , isFetching : true } ,
347- { status : 'success' , data : 15 , isPreviousData : false , isFetching : false } ,
348- ] )
349- expect ( states [ 8 ] ) . toMatchObject ( [
303+ await waitFor ( ( ) => rendered . getByText ( 'data1: 5, data2: 15' ) )
304+ rendered . getByRole ( 'button' , { name : / s e t S e r i e s 1 / i } ) . click ( )
305+
306+ await waitFor ( ( ) => rendered . getByText ( 'data1: 10, data2: 15' ) )
307+ await waitFor ( ( ) => rendered . getByText ( 'isFetching: false' ) )
308+
309+ expect ( states [ states . length - 1 ] ) . toMatchObject ( [
350310 { status : 'success' , data : 10 , isPreviousData : false , isFetching : false } ,
351311 { status : 'success' , data : 15 , isPreviousData : false , isFetching : false } ,
352312 ] )
0 commit comments