|
1 | 1 | import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
2 |
| -import { fireEvent } from '@testing-library/react' |
| 2 | +import { act, fireEvent } from '@testing-library/react' |
3 | 3 | import { ErrorBoundary } from 'react-error-boundary'
|
4 | 4 | import * as React from 'react'
|
5 | 5 | import { queryKey, sleep } from '@tanstack/query-test-utils'
|
@@ -77,17 +77,13 @@ describe('QueryErrorResetBoundary', () => {
|
77 | 77 | </QueryErrorResetBoundary>,
|
78 | 78 | )
|
79 | 79 |
|
80 |
| - await vi.waitFor(() => |
81 |
| - expect(rendered.getByText('error boundary')).toBeInTheDocument(), |
82 |
| - ) |
83 |
| - await vi.waitFor(() => |
84 |
| - expect(rendered.getByText('retry')).toBeInTheDocument(), |
85 |
| - ) |
| 80 | + await vi.advanceTimersByTimeAsync(11) |
| 81 | + expect(rendered.getByText('error boundary')).toBeInTheDocument() |
| 82 | + expect(rendered.getByText('retry')).toBeInTheDocument() |
86 | 83 | succeed = true
|
87 | 84 | fireEvent.click(rendered.getByText('retry'))
|
88 |
| - await vi.waitFor(() => |
89 |
| - expect(rendered.getByText('data')).toBeInTheDocument(), |
90 |
| - ) |
| 85 | + await vi.advanceTimersByTimeAsync(11) |
| 86 | + expect(rendered.getByText('data')).toBeInTheDocument() |
91 | 87 | consoleMock.mockRestore()
|
92 | 88 | })
|
93 | 89 |
|
@@ -147,17 +143,13 @@ describe('QueryErrorResetBoundary', () => {
|
147 | 143 | </QueryErrorResetBoundary>,
|
148 | 144 | )
|
149 | 145 |
|
150 |
| - await vi.waitFor(() => |
151 |
| - expect(rendered.getByText('error boundary')).toBeInTheDocument(), |
152 |
| - ) |
153 |
| - await vi.waitFor(() => |
154 |
| - expect(rendered.getByText('retry')).toBeInTheDocument(), |
155 |
| - ) |
| 146 | + await vi.advanceTimersByTimeAsync(11) |
| 147 | + expect(rendered.getByText('error boundary')).toBeInTheDocument() |
| 148 | + expect(rendered.getByText('retry')).toBeInTheDocument() |
156 | 149 | succeed = true
|
157 | 150 | fireEvent.click(rendered.getByText('retry'))
|
158 |
| - await vi.waitFor(() => |
159 |
| - expect(rendered.getByText('status: error')).toBeInTheDocument(), |
160 |
| - ) |
| 151 | + await vi.advanceTimersByTimeAsync(11) |
| 152 | + expect(rendered.getByText('status: error')).toBeInTheDocument() |
161 | 153 | consoleMock.mockRestore()
|
162 | 154 | })
|
163 | 155 |
|
@@ -219,17 +211,13 @@ describe('QueryErrorResetBoundary', () => {
|
219 | 211 | </QueryErrorResetBoundary>,
|
220 | 212 | )
|
221 | 213 |
|
222 |
| - await vi.waitFor(() => |
223 |
| - expect(rendered.getByText('error boundary')).toBeInTheDocument(), |
224 |
| - ) |
225 |
| - await vi.waitFor(() => |
226 |
| - expect(rendered.getByText('retry')).toBeInTheDocument(), |
227 |
| - ) |
| 214 | + await vi.advanceTimersByTimeAsync(11) |
| 215 | + expect(rendered.getByText('error boundary')).toBeInTheDocument() |
| 216 | + expect(rendered.getByText('retry')).toBeInTheDocument() |
228 | 217 | succeed = true
|
229 | 218 | fireEvent.click(rendered.getByText('retry'))
|
230 |
| - await vi.waitFor(() => |
231 |
| - expect(rendered.getByText('data')).toBeInTheDocument(), |
232 |
| - ) |
| 219 | + await vi.advanceTimersByTimeAsync(11) |
| 220 | + expect(rendered.getByText('data')).toBeInTheDocument() |
233 | 221 | consoleMock.mockRestore()
|
234 | 222 | })
|
235 | 223 |
|
@@ -285,15 +273,12 @@ describe('QueryErrorResetBoundary', () => {
|
285 | 273 | </QueryErrorResetBoundary>,
|
286 | 274 | )
|
287 | 275 |
|
288 |
| - await vi.waitFor(() => |
289 |
| - expect( |
290 |
| - rendered.getByText('status: pending, fetchStatus: idle'), |
291 |
| - ).toBeInTheDocument(), |
292 |
| - ) |
| 276 | + expect( |
| 277 | + rendered.getByText('status: pending, fetchStatus: idle'), |
| 278 | + ).toBeInTheDocument() |
293 | 279 | fireEvent.click(rendered.getByRole('button', { name: /refetch/i }))
|
294 |
| - await vi.waitFor(() => |
295 |
| - expect(rendered.getByText('error boundary')).toBeInTheDocument(), |
296 |
| - ) |
| 280 | + await vi.advanceTimersByTimeAsync(0) |
| 281 | + expect(rendered.getByText('error boundary')).toBeInTheDocument() |
297 | 282 | consoleMock.mockRestore()
|
298 | 283 | })
|
299 | 284 |
|
@@ -347,17 +332,13 @@ describe('QueryErrorResetBoundary', () => {
|
347 | 332 | </QueryErrorResetBoundary>,
|
348 | 333 | )
|
349 | 334 |
|
350 |
| - await vi.waitFor(() => |
351 |
| - expect(rendered.getByText('error boundary')).toBeInTheDocument(), |
352 |
| - ) |
353 |
| - await vi.waitFor(() => |
354 |
| - expect(rendered.getByText('retry')).toBeInTheDocument(), |
355 |
| - ) |
| 335 | + await vi.advanceTimersByTimeAsync(11) |
| 336 | + expect(rendered.getByText('error boundary')).toBeInTheDocument() |
| 337 | + expect(rendered.getByText('retry')).toBeInTheDocument() |
356 | 338 | succeed = true
|
357 | 339 | fireEvent.click(rendered.getByText('retry'))
|
358 |
| - await vi.waitFor(() => |
359 |
| - expect(rendered.getByText('error boundary')).toBeInTheDocument(), |
360 |
| - ) |
| 340 | + await vi.advanceTimersByTimeAsync(11) |
| 341 | + expect(rendered.getByText('error boundary')).toBeInTheDocument() |
361 | 342 | consoleMock.mockRestore()
|
362 | 343 | })
|
363 | 344 |
|
@@ -413,17 +394,13 @@ describe('QueryErrorResetBoundary', () => {
|
413 | 394 | </QueryErrorResetBoundary>,
|
414 | 395 | )
|
415 | 396 |
|
416 |
| - await vi.waitFor(() => |
417 |
| - expect(rendered.getByText('error boundary')).toBeInTheDocument(), |
418 |
| - ) |
419 |
| - await vi.waitFor(() => |
420 |
| - expect(rendered.getByText('retry')).toBeInTheDocument(), |
421 |
| - ) |
| 397 | + await vi.advanceTimersByTimeAsync(11) |
| 398 | + expect(rendered.getByText('error boundary')).toBeInTheDocument() |
| 399 | + expect(rendered.getByText('retry')).toBeInTheDocument() |
422 | 400 | succeed = true
|
423 | 401 | fireEvent.click(rendered.getByText('retry'))
|
424 |
| - await vi.waitFor(() => |
425 |
| - expect(rendered.getByText('data')).toBeInTheDocument(), |
426 |
| - ) |
| 402 | + await vi.advanceTimersByTimeAsync(11) |
| 403 | + expect(rendered.getByText('data')).toBeInTheDocument() |
427 | 404 | consoleMock.mockRestore()
|
428 | 405 | })
|
429 | 406 |
|
@@ -483,21 +460,18 @@ describe('QueryErrorResetBoundary', () => {
|
483 | 460 | </QueryErrorResetBoundary>,
|
484 | 461 | )
|
485 | 462 |
|
486 |
| - await vi.waitFor(() => |
487 |
| - expect(rendered.getByText('error boundary')).toBeInTheDocument(), |
488 |
| - ) |
489 |
| - await vi.waitFor(() => |
490 |
| - expect(rendered.getByText('retry')).toBeInTheDocument(), |
491 |
| - ) |
| 463 | + await vi.advanceTimersByTimeAsync(11) |
| 464 | + expect(rendered.getByText('error boundary')).toBeInTheDocument() |
| 465 | + expect(rendered.getByText('retry')).toBeInTheDocument() |
492 | 466 | shouldReset = true
|
493 | 467 | fireEvent.click(rendered.getByText('retry'))
|
494 |
| - await vi.waitFor(() => |
495 |
| - expect(rendered.getByText('error boundary')).toBeInTheDocument(), |
496 |
| - ) |
| 468 | + await vi.advanceTimersByTimeAsync(11) |
| 469 | + expect(rendered.getByText('error boundary')).toBeInTheDocument() |
497 | 470 | succeed = true
|
498 | 471 | shouldReset = false
|
499 | 472 | fireEvent.click(rendered.getByText('retry'))
|
500 |
| - await vi.waitFor(() => rendered.getByText('error boundary')) |
| 473 | + await vi.advanceTimersByTimeAsync(11) |
| 474 | + rendered.getByText('error boundary') |
501 | 475 | consoleMock.mockRestore()
|
502 | 476 | })
|
503 | 477 |
|
@@ -548,13 +522,16 @@ describe('QueryErrorResetBoundary', () => {
|
548 | 522 | </QueryErrorResetBoundary>,
|
549 | 523 | )
|
550 | 524 |
|
551 |
| - await vi.waitFor(() => rendered.getByText('error boundary')) |
552 |
| - await vi.waitFor(() => rendered.getByText('retry')) |
| 525 | + await vi.advanceTimersByTimeAsync(11) |
| 526 | + rendered.getByText('error boundary') |
| 527 | + rendered.getByText('retry') |
553 | 528 | fireEvent.click(rendered.getByText('retry'))
|
554 |
| - await vi.waitFor(() => rendered.getByText('error boundary')) |
555 |
| - await vi.waitFor(() => rendered.getByText('retry')) |
| 529 | + await vi.advanceTimersByTimeAsync(11) |
| 530 | + rendered.getByText('error boundary') |
| 531 | + rendered.getByText('retry') |
556 | 532 | fireEvent.click(rendered.getByText('retry'))
|
557 |
| - await vi.waitFor(() => rendered.getByText('error boundary')) |
| 533 | + await vi.advanceTimersByTimeAsync(11) |
| 534 | + rendered.getByText('error boundary') |
558 | 535 | expect(fetchCount).toBe(3)
|
559 | 536 | consoleMock.mockRestore()
|
560 | 537 | })
|
@@ -613,13 +590,16 @@ describe('QueryErrorResetBoundary', () => {
|
613 | 590 | </QueryErrorResetBoundary>,
|
614 | 591 | )
|
615 | 592 |
|
616 |
| - await vi.waitFor(() => rendered.getByText('error boundary')) |
617 |
| - await vi.waitFor(() => rendered.getByText('retry')) |
| 593 | + await act(() => vi.advanceTimersByTimeAsync(11)) |
| 594 | + rendered.getByText('error boundary') |
| 595 | + rendered.getByText('retry') |
618 | 596 | fireEvent.click(rendered.getByText('retry'))
|
619 |
| - await vi.waitFor(() => rendered.getByText('error boundary')) |
620 |
| - await vi.waitFor(() => rendered.getByText('retry')) |
| 597 | + await act(() => vi.advanceTimersByTimeAsync(11)) |
| 598 | + rendered.getByText('error boundary') |
| 599 | + rendered.getByText('retry') |
621 | 600 | fireEvent.click(rendered.getByText('retry'))
|
622 |
| - await vi.waitFor(() => rendered.getByText('data')) |
| 601 | + await act(() => vi.advanceTimersByTimeAsync(11)) |
| 602 | + rendered.getByText('data') |
623 | 603 | expect(fetchCount).toBe(3)
|
624 | 604 | expect(renders).toBe(1)
|
625 | 605 | consoleMock.mockRestore()
|
@@ -700,17 +680,13 @@ describe('QueryErrorResetBoundary', () => {
|
700 | 680 | </QueryErrorResetBoundary>,
|
701 | 681 | )
|
702 | 682 |
|
703 |
| - await vi.waitFor(() => |
704 |
| - expect(rendered.getByText('error boundary')).toBeInTheDocument(), |
705 |
| - ) |
706 |
| - await vi.waitFor(() => |
707 |
| - expect(rendered.getByText('retry')).toBeInTheDocument(), |
708 |
| - ) |
| 683 | + await vi.advanceTimersByTimeAsync(11) |
| 684 | + expect(rendered.getByText('error boundary')).toBeInTheDocument() |
| 685 | + expect(rendered.getByText('retry')).toBeInTheDocument() |
709 | 686 | succeed = true
|
710 | 687 | fireEvent.click(rendered.getByText('retry'))
|
711 |
| - await vi.waitFor(() => |
712 |
| - expect(rendered.getByText('data')).toBeInTheDocument(), |
713 |
| - ) |
| 688 | + await vi.advanceTimersByTimeAsync(11) |
| 689 | + expect(rendered.getByText('data')).toBeInTheDocument() |
714 | 690 | consoleMock.mockRestore()
|
715 | 691 | })
|
716 | 692 | })
|
@@ -771,17 +747,13 @@ describe('QueryErrorResetBoundary', () => {
|
771 | 747 | </QueryErrorResetBoundary>,
|
772 | 748 | )
|
773 | 749 |
|
774 |
| - await vi.waitFor(() => |
775 |
| - expect(rendered.getByText('error boundary')).toBeInTheDocument(), |
776 |
| - ) |
777 |
| - await vi.waitFor(() => |
778 |
| - expect(rendered.getByText('retry')).toBeInTheDocument(), |
779 |
| - ) |
| 750 | + await vi.advanceTimersByTimeAsync(11) |
| 751 | + expect(rendered.getByText('error boundary')).toBeInTheDocument() |
| 752 | + expect(rendered.getByText('retry')).toBeInTheDocument() |
780 | 753 | succeed = true
|
781 | 754 | fireEvent.click(rendered.getByText('retry'))
|
782 |
| - await vi.waitFor(() => |
783 |
| - expect(rendered.getByText('data')).toBeInTheDocument(), |
784 |
| - ) |
| 755 | + await vi.advanceTimersByTimeAsync(11) |
| 756 | + expect(rendered.getByText('data')).toBeInTheDocument() |
785 | 757 | consoleMock.mockRestore()
|
786 | 758 | })
|
787 | 759 |
|
@@ -841,17 +813,13 @@ describe('QueryErrorResetBoundary', () => {
|
841 | 813 | </QueryErrorResetBoundary>,
|
842 | 814 | )
|
843 | 815 |
|
844 |
| - await vi.waitFor(() => |
845 |
| - expect(rendered.getByText('error boundary')).toBeInTheDocument(), |
846 |
| - ) |
847 |
| - await vi.waitFor(() => |
848 |
| - expect(rendered.getByText('retry')).toBeInTheDocument(), |
849 |
| - ) |
| 816 | + await act(() => vi.advanceTimersByTimeAsync(11)) |
| 817 | + expect(rendered.getByText('error boundary')).toBeInTheDocument() |
| 818 | + expect(rendered.getByText('retry')).toBeInTheDocument() |
850 | 819 | succeed = true
|
851 | 820 | fireEvent.click(rendered.getByText('retry'))
|
852 |
| - await vi.waitFor(() => |
853 |
| - expect(rendered.getByText('data')).toBeInTheDocument(), |
854 |
| - ) |
| 821 | + await act(() => vi.advanceTimersByTimeAsync(11)) |
| 822 | + expect(rendered.getByText('data')).toBeInTheDocument() |
855 | 823 | consoleMock.mockRestore()
|
856 | 824 | })
|
857 | 825 | })
|
|
0 commit comments