Skip to content

Commit fc98d31

Browse files
authored
test: stabilize a flaky test for isFetchedAfterMount (#4381)
1 parent f6023ff commit fc98d31

1 file changed

Lines changed: 19 additions & 16 deletions

File tree

packages/react-query/src/__tests__/useQuery.test.tsx

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -401,30 +401,33 @@ describe('useQuery', () => {
401401

402402
it('should set isFetchedAfterMount to true after a query has been fetched', async () => {
403403
const key = queryKey()
404-
const states: UseQueryResult<string>[] = []
405404

406405
await queryClient.prefetchQuery(key, () => 'prefetched')
407406

408407
function Page() {
409-
const state = useQuery(key, () => 'data')
410-
states.push(state)
411-
return null
408+
const result = useQuery(key, () => 'new data')
409+
410+
return (
411+
<>
412+
<div>data: {result.data}</div>
413+
<div>isFetched: {result.isFetched ? 'true' : 'false'}</div>
414+
<div>
415+
isFetchedAfterMount: {result.isFetchedAfterMount ? 'true' : 'false'}
416+
</div>
417+
</>
418+
)
412419
}
413420

414-
renderWithClient(queryClient, <Page />)
421+
const rendered = renderWithClient(queryClient, <Page />)
415422

416-
await sleep(10)
417-
expect(states.length).toBe(2)
423+
rendered.getByText('data: prefetched')
424+
rendered.getByText('isFetched: true')
425+
rendered.getByText('isFetchedAfterMount: false')
418426

419-
expect(states[0]).toMatchObject({
420-
data: 'prefetched',
421-
isFetched: true,
422-
isFetchedAfterMount: false,
423-
})
424-
expect(states[1]).toMatchObject({
425-
data: 'data',
426-
isFetched: true,
427-
isFetchedAfterMount: true,
427+
await waitFor(() => {
428+
rendered.getByText('data: new data')
429+
rendered.getByText('isFetched: true')
430+
rendered.getByText('isFetchedAfterMount: true')
428431
})
429432
})
430433

0 commit comments

Comments
 (0)