Skip to content

Commit ac2fa17

Browse files
sukvvonmanudeli
andauthored
test(react-query/QueryResetErrorBoundary): switch to fake timers and replace 'waitFor' with 'vi.waitFor' (#9349)
Co-authored-by: Jonghyeon Ko <[email protected]>
1 parent ed66939 commit ac2fa17

File tree

1 file changed

+51
-42
lines changed

1 file changed

+51
-42
lines changed

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

Lines changed: 51 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { describe, expect, it, vi } from 'vitest'
2-
import { fireEvent, waitFor } from '@testing-library/react'
1+
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
2+
import { fireEvent } from '@testing-library/react'
33
import { ErrorBoundary } from 'react-error-boundary'
44
import * as React from 'react'
55
import { queryKey, sleep } from '@tanstack/query-test-utils'
@@ -15,6 +15,14 @@ import {
1515
import { renderWithClient } from './utils'
1616

1717
describe('QueryErrorResetBoundary', () => {
18+
beforeEach(() => {
19+
vi.useFakeTimers()
20+
})
21+
22+
afterEach(() => {
23+
vi.useRealTimers()
24+
})
25+
1826
const queryCache = new QueryCache()
1927
const queryClient = new QueryClient({ queryCache })
2028

@@ -69,15 +77,15 @@ describe('QueryErrorResetBoundary', () => {
6977
</QueryErrorResetBoundary>,
7078
)
7179

72-
await waitFor(() =>
80+
await vi.waitFor(() =>
7381
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
7482
)
75-
await waitFor(() =>
83+
await vi.waitFor(() =>
7684
expect(rendered.getByText('retry')).toBeInTheDocument(),
7785
)
7886
succeed = true
7987
fireEvent.click(rendered.getByText('retry'))
80-
await waitFor(() =>
88+
await vi.waitFor(() =>
8189
expect(rendered.getByText('data')).toBeInTheDocument(),
8290
)
8391
consoleMock.mockRestore()
@@ -139,15 +147,15 @@ describe('QueryErrorResetBoundary', () => {
139147
</QueryErrorResetBoundary>,
140148
)
141149

142-
await waitFor(() =>
150+
await vi.waitFor(() =>
143151
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
144152
)
145-
await waitFor(() =>
153+
await vi.waitFor(() =>
146154
expect(rendered.getByText('retry')).toBeInTheDocument(),
147155
)
148156
succeed = true
149157
fireEvent.click(rendered.getByText('retry'))
150-
await waitFor(() =>
158+
await vi.waitFor(() =>
151159
expect(rendered.getByText('status: error')).toBeInTheDocument(),
152160
)
153161
consoleMock.mockRestore()
@@ -211,15 +219,15 @@ describe('QueryErrorResetBoundary', () => {
211219
</QueryErrorResetBoundary>,
212220
)
213221

214-
await waitFor(() =>
222+
await vi.waitFor(() =>
215223
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
216224
)
217-
await waitFor(() =>
225+
await vi.waitFor(() =>
218226
expect(rendered.getByText('retry')).toBeInTheDocument(),
219227
)
220228
succeed = true
221229
fireEvent.click(rendered.getByText('retry'))
222-
await waitFor(() =>
230+
await vi.waitFor(() =>
223231
expect(rendered.getByText('data')).toBeInTheDocument(),
224232
)
225233
consoleMock.mockRestore()
@@ -277,13 +285,13 @@ describe('QueryErrorResetBoundary', () => {
277285
</QueryErrorResetBoundary>,
278286
)
279287

280-
await waitFor(() =>
288+
await vi.waitFor(() =>
281289
expect(
282290
rendered.getByText('status: pending, fetchStatus: idle'),
283291
).toBeInTheDocument(),
284292
)
285293
fireEvent.click(rendered.getByRole('button', { name: /refetch/i }))
286-
await waitFor(() =>
294+
await vi.waitFor(() =>
287295
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
288296
)
289297
consoleMock.mockRestore()
@@ -339,15 +347,15 @@ describe('QueryErrorResetBoundary', () => {
339347
</QueryErrorResetBoundary>,
340348
)
341349

342-
await waitFor(() =>
350+
await vi.waitFor(() =>
343351
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
344352
)
345-
await waitFor(() =>
353+
await vi.waitFor(() =>
346354
expect(rendered.getByText('retry')).toBeInTheDocument(),
347355
)
348356
succeed = true
349357
fireEvent.click(rendered.getByText('retry'))
350-
await waitFor(() =>
358+
await vi.waitFor(() =>
351359
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
352360
)
353361
consoleMock.mockRestore()
@@ -405,15 +413,15 @@ describe('QueryErrorResetBoundary', () => {
405413
</QueryErrorResetBoundary>,
406414
)
407415

408-
await waitFor(() =>
416+
await vi.waitFor(() =>
409417
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
410418
)
411-
await waitFor(() =>
419+
await vi.waitFor(() =>
412420
expect(rendered.getByText('retry')).toBeInTheDocument(),
413421
)
414422
succeed = true
415423
fireEvent.click(rendered.getByText('retry'))
416-
await waitFor(() =>
424+
await vi.waitFor(() =>
417425
expect(rendered.getByText('data')).toBeInTheDocument(),
418426
)
419427
consoleMock.mockRestore()
@@ -475,21 +483,21 @@ describe('QueryErrorResetBoundary', () => {
475483
</QueryErrorResetBoundary>,
476484
)
477485

478-
await waitFor(() =>
486+
await vi.waitFor(() =>
479487
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
480488
)
481-
await waitFor(() =>
489+
await vi.waitFor(() =>
482490
expect(rendered.getByText('retry')).toBeInTheDocument(),
483491
)
484492
shouldReset = true
485493
fireEvent.click(rendered.getByText('retry'))
486-
await waitFor(() =>
494+
await vi.waitFor(() =>
487495
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
488496
)
489497
succeed = true
490498
shouldReset = false
491499
fireEvent.click(rendered.getByText('retry'))
492-
await waitFor(() => rendered.getByText('error boundary'))
500+
await vi.waitFor(() => rendered.getByText('error boundary'))
493501
consoleMock.mockRestore()
494502
})
495503

@@ -540,13 +548,13 @@ describe('QueryErrorResetBoundary', () => {
540548
</QueryErrorResetBoundary>,
541549
)
542550

543-
await waitFor(() => rendered.getByText('error boundary'))
544-
await waitFor(() => rendered.getByText('retry'))
551+
await vi.waitFor(() => rendered.getByText('error boundary'))
552+
await vi.waitFor(() => rendered.getByText('retry'))
545553
fireEvent.click(rendered.getByText('retry'))
546-
await waitFor(() => rendered.getByText('error boundary'))
547-
await waitFor(() => rendered.getByText('retry'))
554+
await vi.waitFor(() => rendered.getByText('error boundary'))
555+
await vi.waitFor(() => rendered.getByText('retry'))
548556
fireEvent.click(rendered.getByText('retry'))
549-
await waitFor(() => rendered.getByText('error boundary'))
557+
await vi.waitFor(() => rendered.getByText('error boundary'))
550558
expect(fetchCount).toBe(3)
551559
consoleMock.mockRestore()
552560
})
@@ -605,13 +613,13 @@ describe('QueryErrorResetBoundary', () => {
605613
</QueryErrorResetBoundary>,
606614
)
607615

608-
await waitFor(() => rendered.getByText('error boundary'))
609-
await waitFor(() => rendered.getByText('retry'))
616+
await vi.waitFor(() => rendered.getByText('error boundary'))
617+
await vi.waitFor(() => rendered.getByText('retry'))
610618
fireEvent.click(rendered.getByText('retry'))
611-
await waitFor(() => rendered.getByText('error boundary'))
612-
await waitFor(() => rendered.getByText('retry'))
619+
await vi.waitFor(() => rendered.getByText('error boundary'))
620+
await vi.waitFor(() => rendered.getByText('retry'))
613621
fireEvent.click(rendered.getByText('retry'))
614-
await waitFor(() => rendered.getByText('data'))
622+
await vi.waitFor(() => rendered.getByText('data'))
615623
expect(fetchCount).toBe(3)
616624
expect(renders).toBe(1)
617625
consoleMock.mockRestore()
@@ -692,20 +700,21 @@ describe('QueryErrorResetBoundary', () => {
692700
</QueryErrorResetBoundary>,
693701
)
694702

695-
await waitFor(() =>
703+
await vi.waitFor(() =>
696704
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
697705
)
698-
await waitFor(() =>
706+
await vi.waitFor(() =>
699707
expect(rendered.getByText('retry')).toBeInTheDocument(),
700708
)
701709
succeed = true
702710
fireEvent.click(rendered.getByText('retry'))
703-
await waitFor(() =>
711+
await vi.waitFor(() =>
704712
expect(rendered.getByText('data')).toBeInTheDocument(),
705713
)
706714
consoleMock.mockRestore()
707715
})
708716
})
717+
709718
describe('useQueries', () => {
710719
it('should retry fetch if the reset error boundary has been reset', async () => {
711720
const consoleMock = vi
@@ -762,15 +771,15 @@ describe('QueryErrorResetBoundary', () => {
762771
</QueryErrorResetBoundary>,
763772
)
764773

765-
await waitFor(() =>
774+
await vi.waitFor(() =>
766775
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
767776
)
768-
await waitFor(() =>
777+
await vi.waitFor(() =>
769778
expect(rendered.getByText('retry')).toBeInTheDocument(),
770779
)
771780
succeed = true
772781
fireEvent.click(rendered.getByText('retry'))
773-
await waitFor(() =>
782+
await vi.waitFor(() =>
774783
expect(rendered.getByText('data')).toBeInTheDocument(),
775784
)
776785
consoleMock.mockRestore()
@@ -832,15 +841,15 @@ describe('QueryErrorResetBoundary', () => {
832841
</QueryErrorResetBoundary>,
833842
)
834843

835-
await waitFor(() =>
844+
await vi.waitFor(() =>
836845
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
837846
)
838-
await waitFor(() =>
847+
await vi.waitFor(() =>
839848
expect(rendered.getByText('retry')).toBeInTheDocument(),
840849
)
841850
succeed = true
842851
fireEvent.click(rendered.getByText('retry'))
843-
await waitFor(() =>
852+
await vi.waitFor(() =>
844853
expect(rendered.getByText('data')).toBeInTheDocument(),
845854
)
846855
consoleMock.mockRestore()

0 commit comments

Comments
 (0)