1
1
import { afterEach , beforeEach , describe , expect , it , vi } from 'vitest'
2
2
import React from 'react'
3
- import { fireEvent } from '@testing-library/react'
3
+ import { act , fireEvent } from '@testing-library/react'
4
4
import { ErrorBoundary } from 'react-error-boundary'
5
5
import { queryKey } from '@tanstack/query-test-utils'
6
6
import {
@@ -72,7 +72,8 @@ describe('usePrefetchQuery', () => {
72
72
73
73
const rendered = renderWithClient ( queryClient , < App /> )
74
74
75
- await vi . waitFor ( ( ) => rendered . getByText ( 'data: prefetchQuery' ) )
75
+ await act ( ( ) => vi . advanceTimersByTimeAsync ( 11 ) )
76
+ rendered . getByText ( 'data: prefetchQuery' )
76
77
expect ( queryOpts . queryFn ) . toHaveBeenCalledTimes ( 1 )
77
78
} )
78
79
@@ -97,9 +98,7 @@ describe('usePrefetchQuery', () => {
97
98
const rendered = renderWithClient ( queryClient , < App /> )
98
99
99
100
expect ( rendered . queryByText ( 'fetching: true' ) ) . not . toBeInTheDocument ( )
100
- await vi . waitFor ( ( ) =>
101
- rendered . getByText ( 'data: The usePrefetchQuery hook is smart!' ) ,
102
- )
101
+ rendered . getByText ( 'data: The usePrefetchQuery hook is smart!' )
103
102
expect ( queryOpts . queryFn ) . not . toHaveBeenCalled ( )
104
103
} )
105
104
@@ -135,7 +134,7 @@ describe('usePrefetchQuery', () => {
135
134
queryFn . mockClear ( )
136
135
const rendered = renderWithClient ( queryClient , < App /> )
137
136
138
- await vi . waitFor ( ( ) => rendered . getByText ( 'Oops!' ) )
137
+ rendered . getByText ( 'Oops!' )
139
138
expect ( rendered . queryByText ( 'data: Not an error' ) ) . not . toBeInTheDocument ( )
140
139
expect ( queryOpts . queryFn ) . not . toHaveBeenCalled ( )
141
140
@@ -166,7 +165,8 @@ describe('usePrefetchQuery', () => {
166
165
}
167
166
168
167
const rendered = renderWithClient ( queryClient , < App /> )
169
- await vi . waitFor ( ( ) => rendered . getByText ( 'data: prefetchedQuery' ) )
168
+ await act ( ( ) => vi . advanceTimersByTimeAsync ( 11 ) )
169
+ rendered . getByText ( 'data: prefetchedQuery' )
170
170
expect ( queryOpts . queryFn ) . toHaveBeenCalledTimes ( 1 )
171
171
} )
172
172
@@ -212,11 +212,10 @@ describe('usePrefetchQuery', () => {
212
212
213
213
const rendered = renderWithClient ( queryClient , < App /> )
214
214
215
- await vi . waitFor ( ( ) => rendered . getByText ( 'Oops!' ) )
215
+ rendered . getByText ( 'Oops!' )
216
216
fireEvent . click ( rendered . getByText ( 'Try again' ) )
217
- await vi . waitFor ( ( ) =>
218
- rendered . getByText ( 'data: This is fine :dog: :fire:' ) ,
219
- )
217
+ await act ( ( ) => vi . advanceTimersByTimeAsync ( 11 ) )
218
+ rendered . getByText ( 'data: This is fine :dog: :fire:' )
220
219
expect ( queryOpts . queryFn ) . toHaveBeenCalledTimes ( 1 )
221
220
consoleMock . mockRestore ( )
222
221
} )
@@ -265,14 +264,11 @@ describe('usePrefetchQuery', () => {
265
264
expect (
266
265
queryClient . getQueryState ( thirdQueryOpts . queryKey ) ?. fetchStatus ,
267
266
) . toBe ( 'fetching' )
268
- await vi . waitFor ( ( ) => rendered . getByText ( 'Loading...' ) )
269
- await vi . waitFor ( ( ) => rendered . getByText ( 'data: Prefetch is nice!' ) )
270
- await vi . waitFor ( ( ) =>
271
- rendered . getByText ( 'data: Prefetch is really nice!!' ) ,
272
- )
273
- await vi . waitFor ( ( ) =>
274
- rendered . getByText ( 'data: Prefetch does not create waterfalls!!' ) ,
275
- )
267
+ rendered . getByText ( 'Loading...' )
268
+ await act ( ( ) => vi . advanceTimersByTimeAsync ( 11 ) )
269
+ rendered . getByText ( 'data: Prefetch is nice!' )
270
+ rendered . getByText ( 'data: Prefetch is really nice!!' )
271
+ rendered . getByText ( 'data: Prefetch does not create waterfalls!!' )
276
272
expect ( Fallback ) . toHaveBeenCalledTimes ( 1 )
277
273
expect ( firstQueryOpts . queryFn ) . toHaveBeenCalledTimes ( 1 )
278
274
expect ( secondQueryOpts . queryFn ) . toHaveBeenCalledTimes ( 1 )
0 commit comments