1
- import { act , render , waitFor } from '@testing-library/react'
1
+ import { afterEach , beforeEach , describe , expect , it , vi } from 'vitest'
2
+ import { act , render } from '@testing-library/react'
2
3
import { Suspense } from 'react'
3
- import {
4
- afterAll ,
5
- beforeAll ,
6
- beforeEach ,
7
- describe ,
8
- expect ,
9
- it ,
10
- vi ,
11
- } from 'vitest'
12
4
import { queryKey } from '@tanstack/query-test-utils'
13
5
import { QueryClient , QueryClientProvider , useSuspenseQuery } from '..'
14
6
import type { QueryKey } from '..'
@@ -43,15 +35,8 @@ describe('Suspense Timer Tests', () => {
43
35
let queryClient : QueryClient
44
36
let fetchCount : { count : number }
45
37
46
- beforeAll ( ( ) => {
47
- vi . useFakeTimers ( { shouldAdvanceTime : true } )
48
- } )
49
-
50
- afterAll ( ( ) => {
51
- vi . useRealTimers ( )
52
- } )
53
-
54
38
beforeEach ( ( ) => {
39
+ vi . useFakeTimers ( )
55
40
queryClient = new QueryClient ( {
56
41
defaultOptions : {
57
42
queries : {
@@ -62,6 +47,10 @@ describe('Suspense Timer Tests', () => {
62
47
fetchCount = { count : 0 }
63
48
} )
64
49
50
+ afterEach ( ( ) => {
51
+ vi . useRealTimers ( )
52
+ } )
53
+
65
54
it ( 'should enforce minimum staleTime of 1000ms when using suspense with number' , async ( ) => {
66
55
const TestComponent = createTestQuery ( {
67
56
fetchCount,
@@ -71,7 +60,8 @@ describe('Suspense Timer Tests', () => {
71
60
72
61
const rendered = renderWithSuspense ( queryClient , < TestComponent /> )
73
62
74
- await waitFor ( ( ) => rendered . getByText ( 'data: data' ) )
63
+ await act ( ( ) => vi . advanceTimersByTime ( 0 ) )
64
+ rendered . getByText ( 'data: data' )
75
65
76
66
rendered . rerender (
77
67
< QueryClientProvider client = { queryClient } >
@@ -81,9 +71,7 @@ describe('Suspense Timer Tests', () => {
81
71
</ QueryClientProvider > ,
82
72
)
83
73
84
- act ( ( ) => {
85
- vi . advanceTimersByTime ( 100 )
86
- } )
74
+ await act ( ( ) => vi . advanceTimersByTime ( 100 ) )
87
75
88
76
expect ( fetchCount . count ) . toBe ( 1 )
89
77
} )
@@ -97,7 +85,8 @@ describe('Suspense Timer Tests', () => {
97
85
98
86
const rendered = renderWithSuspense ( queryClient , < TestComponent /> )
99
87
100
- await waitFor ( ( ) => rendered . getByText ( 'data: data' ) )
88
+ await act ( ( ) => vi . advanceTimersByTime ( 0 ) )
89
+ rendered . getByText ( 'data: data' )
101
90
102
91
rendered . rerender (
103
92
< QueryClientProvider client = { queryClient } >
@@ -107,9 +96,7 @@ describe('Suspense Timer Tests', () => {
107
96
</ QueryClientProvider > ,
108
97
)
109
98
110
- act ( ( ) => {
111
- vi . advanceTimersByTime ( 100 )
112
- } )
99
+ await act ( ( ) => vi . advanceTimersByTime ( 100 ) )
113
100
114
101
expect ( fetchCount . count ) . toBe ( 1 )
115
102
} )
@@ -123,7 +110,8 @@ describe('Suspense Timer Tests', () => {
123
110
124
111
const rendered = renderWithSuspense ( queryClient , < TestComponent /> )
125
112
126
- await waitFor ( ( ) => rendered . getByText ( 'data: data' ) )
113
+ await act ( ( ) => vi . advanceTimersByTime ( 0 ) )
114
+ rendered . getByText ( 'data: data' )
127
115
128
116
rendered . rerender (
129
117
< QueryClientProvider client = { queryClient } >
@@ -133,9 +121,7 @@ describe('Suspense Timer Tests', () => {
133
121
</ QueryClientProvider > ,
134
122
)
135
123
136
- act ( ( ) => {
137
- vi . advanceTimersByTime ( 1500 )
138
- } )
124
+ await act ( ( ) => vi . advanceTimersByTime ( 1500 ) )
139
125
140
126
expect ( fetchCount . count ) . toBe ( 1 )
141
127
} )
@@ -149,7 +135,8 @@ describe('Suspense Timer Tests', () => {
149
135
150
136
const rendered = renderWithSuspense ( queryClient , < TestComponent /> )
151
137
152
- await waitFor ( ( ) => rendered . getByText ( 'data: data' ) )
138
+ await act ( ( ) => vi . advanceTimersByTime ( 0 ) )
139
+ rendered . getByText ( 'data: data' )
153
140
154
141
rendered . rerender (
155
142
< QueryClientProvider client = { queryClient } >
@@ -159,9 +146,7 @@ describe('Suspense Timer Tests', () => {
159
146
</ QueryClientProvider > ,
160
147
)
161
148
162
- act ( ( ) => {
163
- vi . advanceTimersByTime ( 500 )
164
- } )
149
+ await act ( ( ) => vi . advanceTimersByTime ( 500 ) )
165
150
166
151
expect ( fetchCount . count ) . toBe ( 1 )
167
152
} )
@@ -175,7 +160,8 @@ describe('Suspense Timer Tests', () => {
175
160
176
161
const rendered = renderWithSuspense ( queryClient , < TestComponent /> )
177
162
178
- await waitFor ( ( ) => rendered . getByText ( 'data: data' ) )
163
+ await act ( ( ) => vi . advanceTimersByTime ( 0 ) )
164
+ rendered . getByText ( 'data: data' )
179
165
180
166
rendered . rerender (
181
167
< QueryClientProvider client = { queryClient } >
@@ -185,9 +171,7 @@ describe('Suspense Timer Tests', () => {
185
171
</ QueryClientProvider > ,
186
172
)
187
173
188
- act ( ( ) => {
189
- vi . advanceTimersByTime ( 2000 )
190
- } )
174
+ await act ( ( ) => vi . advanceTimersByTime ( 2000 ) )
191
175
192
176
expect ( fetchCount . count ) . toBe ( 1 )
193
177
} )
0 commit comments