@@ -362,14 +362,21 @@ describe('useQuery', () => {
362362 const onSuccess = jest . fn ( )
363363
364364 function Page ( ) {
365- const state = useQuery ( key , ( ) => 'data' , { onSuccess } )
365+ const state = useQuery (
366+ key ,
367+ async ( ) => {
368+ await sleep ( 10 )
369+ return 'data'
370+ } ,
371+ { onSuccess }
372+ )
366373 states . push ( state )
367- return null
374+ return < div > data: { state . data } </ div >
368375 }
369376
370- renderWithClient ( queryClient , < Page /> )
377+ const rendered = renderWithClient ( queryClient , < Page /> )
371378
372- await sleep ( 10 )
379+ await rendered . findByText ( 'data: data' )
373380 expect ( states . length ) . toBe ( 2 )
374381 expect ( onSuccess ) . toHaveBeenCalledTimes ( 1 )
375382 expect ( onSuccess ) . toHaveBeenCalledWith ( 'data' )
@@ -379,34 +386,37 @@ describe('useQuery', () => {
379386 const key = queryKey ( )
380387 const states : UseQueryResult < string > [ ] = [ ]
381388 const onSuccess = jest . fn ( )
389+ let count = 0
382390
383391 function Page ( ) {
384392 const state = useQuery (
385393 key ,
386394 async ( ) => {
395+ count ++
387396 await sleep ( 10 )
388- return 'data'
397+ return 'data' + count
389398 } ,
390- { onSuccess, notifyOnChangeProps : 'all' }
399+ { onSuccess }
391400 )
392401
393402 states . push ( state )
394403
395- const { refetch } = state
396-
397- React . useEffect ( ( ) => {
398- setActTimeout ( ( ) => {
399- refetch ( )
400- } , 20 )
401- } , [ refetch ] )
402-
403- return null
404+ return (
405+ < div >
406+ < div > data: { state . data } </ div >
407+ < button onClick = { ( ) => state . refetch ( ) } > refetch</ button >
408+ </ div >
409+ )
404410 }
405411
406- renderWithClient ( queryClient , < Page /> )
412+ const rendered = renderWithClient ( queryClient , < Page /> )
407413
408- await sleep ( 50 )
409- expect ( states . length ) . toBe ( 4 )
414+ await rendered . findByText ( 'data: data1' )
415+ fireEvent . click ( rendered . getByRole ( 'button' , { name : / r e f e t c h / i } ) )
416+ await rendered . findByText ( 'data: data2' )
417+
418+ expect ( states . length ) . toBe ( 3 ) //loading, success, success after refetch
419+ expect ( count ) . toBe ( 2 )
410420 expect ( onSuccess ) . toHaveBeenCalledTimes ( 2 )
411421 } )
412422
0 commit comments