|
1 | 1 | import { StrictMode, useEffect, useRef } from 'react' |
2 | | -import { fireEvent, render, screen, waitFor } from '@testing-library/react' |
3 | | -import { expect, it } from 'vitest' |
| 2 | +import { fireEvent, render, screen } from '@testing-library/react' |
| 3 | +import { afterEach, beforeEach, expect, it, vi } from 'vitest' |
4 | 4 | import { proxy, useSnapshot } from 'valtio' |
5 | 5 |
|
| 6 | +beforeEach(() => { |
| 7 | + vi.useFakeTimers() |
| 8 | +}) |
| 9 | + |
| 10 | +afterEach(() => { |
| 11 | + vi.useRealTimers() |
| 12 | +}) |
| 13 | + |
6 | 14 | const useCommitCount = () => { |
7 | 15 | const commitCountRef = useRef(0) |
8 | 16 | useEffect(() => { |
@@ -37,10 +45,14 @@ it('simple class without methods', async () => { |
37 | 45 | </StrictMode>, |
38 | 46 | ) |
39 | 47 |
|
40 | | - expect(await screen.findByText('count: 0')).toBeInTheDocument() |
| 48 | + await vi.waitFor(() => |
| 49 | + expect(screen.getByText('count: 0')).toBeInTheDocument(), |
| 50 | + ) |
41 | 51 |
|
42 | 52 | fireEvent.click(screen.getByText('button')) |
43 | | - expect(await screen.findByText('count: 1')).toBeInTheDocument() |
| 53 | + await vi.waitFor(() => |
| 54 | + expect(screen.getByText('count: 1')).toBeInTheDocument(), |
| 55 | + ) |
44 | 56 | }) |
45 | 57 |
|
46 | 58 | it('no extra re-renders with class', async () => { |
@@ -86,19 +98,19 @@ it('no extra re-renders with class', async () => { |
86 | 98 | </>, |
87 | 99 | ) |
88 | 100 |
|
89 | | - await waitFor(() => { |
| 101 | + await vi.waitFor(() => { |
90 | 102 | expect(screen.getByText('count: 0 (0)')).toBeInTheDocument() |
91 | 103 | expect(screen.getByText('count2: 0 (0)')).toBeInTheDocument() |
92 | 104 | }) |
93 | 105 |
|
94 | 106 | fireEvent.click(screen.getByText('button')) |
95 | | - await waitFor(() => { |
| 107 | + await vi.waitFor(() => { |
96 | 108 | expect(screen.getByText('count: 1 (1)')).toBeInTheDocument() |
97 | 109 | expect(screen.getByText('count2: 0 (0)')).toBeInTheDocument() |
98 | 110 | }) |
99 | 111 |
|
100 | 112 | fireEvent.click(screen.getByText('button2')) |
101 | | - await waitFor(() => { |
| 113 | + await vi.waitFor(() => { |
102 | 114 | expect(screen.getByText('count: 1 (1)')).toBeInTheDocument() |
103 | 115 | expect(screen.getByText('count2: 1 (1)')).toBeInTheDocument() |
104 | 116 | }) |
@@ -137,10 +149,14 @@ it('inherited class without methods', async () => { |
137 | 149 | </StrictMode>, |
138 | 150 | ) |
139 | 151 |
|
140 | | - expect(await screen.findByText('count: 0')).toBeInTheDocument() |
| 152 | + await vi.waitFor(() => |
| 153 | + expect(screen.getByText('count: 0')).toBeInTheDocument(), |
| 154 | + ) |
141 | 155 |
|
142 | 156 | fireEvent.click(screen.getByText('button')) |
143 | | - expect(await screen.findByText('count: 1')).toBeInTheDocument() |
| 157 | + await vi.waitFor(() => |
| 158 | + expect(screen.getByText('count: 1')).toBeInTheDocument(), |
| 159 | + ) |
144 | 160 | }) |
145 | 161 |
|
146 | 162 | it('class with a method', async () => { |
@@ -184,13 +200,13 @@ it('class with a method', async () => { |
184 | 200 | </>, |
185 | 201 | ) |
186 | 202 |
|
187 | | - await waitFor(() => { |
| 203 | + await vi.waitFor(() => { |
188 | 204 | expect(screen.getByText('doubled: 0 (0)')).toBeInTheDocument() |
189 | 205 | expect(screen.getByText('count: 0 (0)')).toBeInTheDocument() |
190 | 206 | }) |
191 | 207 |
|
192 | 208 | fireEvent.click(screen.getByText('button')) |
193 | | - await waitFor(() => { |
| 209 | + await vi.waitFor(() => { |
194 | 210 | expect(screen.getByText('doubled: 2 (1)')).toBeInTheDocument() |
195 | 211 | expect(screen.getByText('count: 1 (1)')).toBeInTheDocument() |
196 | 212 | }) |
@@ -247,19 +263,19 @@ it('inherited class with a method', async () => { |
247 | 263 | </>, |
248 | 264 | ) |
249 | 265 |
|
250 | | - await waitFor(() => { |
| 266 | + await vi.waitFor(() => { |
251 | 267 | expect(screen.getByText('doubled: 0 (0)')).toBeInTheDocument() |
252 | 268 | expect(screen.getByText('count2: 0 (0)')).toBeInTheDocument() |
253 | 269 | }) |
254 | 270 |
|
255 | 271 | fireEvent.click(screen.getByText('button')) |
256 | | - await waitFor(() => { |
| 272 | + await vi.waitFor(() => { |
257 | 273 | expect(screen.getByText('doubled: 2 (1)')).toBeInTheDocument() |
258 | 274 | expect(screen.getByText('count2: 0 (0)')).toBeInTheDocument() |
259 | 275 | }) |
260 | 276 |
|
261 | 277 | fireEvent.click(screen.getByText('button2')) |
262 | | - await waitFor(() => { |
| 278 | + await vi.waitFor(() => { |
263 | 279 | expect(screen.getByText('doubled: 2 (1)')).toBeInTheDocument() |
264 | 280 | expect(screen.getByText('count2: 1 (1)')).toBeInTheDocument() |
265 | 281 | }) |
@@ -314,19 +330,19 @@ it('no extra re-renders with getters', async () => { |
314 | 330 | </>, |
315 | 331 | ) |
316 | 332 |
|
317 | | - await waitFor(() => { |
| 333 | + await vi.waitFor(() => { |
318 | 334 | expect(screen.getByText('count: 0 (0)')).toBeInTheDocument() |
319 | 335 | expect(screen.getByText('sum: 0 (0)')).toBeInTheDocument() |
320 | 336 | }) |
321 | 337 |
|
322 | 338 | fireEvent.click(screen.getByText('button')) |
323 | | - await waitFor(() => { |
| 339 | + await vi.waitFor(() => { |
324 | 340 | expect(screen.getByText('count: 1 (1)')).toBeInTheDocument() |
325 | 341 | expect(screen.getByText('sum: 1 (1)')).toBeInTheDocument() |
326 | 342 | }) |
327 | 343 |
|
328 | 344 | fireEvent.click(screen.getByText('button2')) |
329 | | - await waitFor(() => { |
| 345 | + await vi.waitFor(() => { |
330 | 346 | expect(screen.getByText('count: 1 (1)')).toBeInTheDocument() |
331 | 347 | expect(screen.getByText('sum: 2 (2)')).toBeInTheDocument() |
332 | 348 | }) |
|
0 commit comments