diff --git a/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx b/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx index 8bc5dd9923..e9dab4e489 100644 --- a/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx +++ b/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx @@ -1,5 +1,5 @@ -import { describe, expect, it, vi } from 'vitest' -import { fireEvent, waitFor } from '@testing-library/react' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { fireEvent } from '@testing-library/react' import { ErrorBoundary } from 'react-error-boundary' import * as React from 'react' import { queryKey, sleep } from '@tanstack/query-test-utils' @@ -15,6 +15,14 @@ import { import { renderWithClient } from './utils' describe('QueryErrorResetBoundary', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) @@ -69,15 +77,15 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument(), ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('data')).toBeInTheDocument(), ) consoleMock.mockRestore() @@ -139,15 +147,15 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument(), ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('status: error')).toBeInTheDocument(), ) consoleMock.mockRestore() @@ -211,15 +219,15 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument(), ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('data')).toBeInTheDocument(), ) consoleMock.mockRestore() @@ -277,13 +285,13 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect( rendered.getByText('status: pending, fetchStatus: idle'), ).toBeInTheDocument(), ) fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) consoleMock.mockRestore() @@ -339,15 +347,15 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument(), ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) consoleMock.mockRestore() @@ -405,15 +413,15 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument(), ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('data')).toBeInTheDocument(), ) consoleMock.mockRestore() @@ -475,21 +483,21 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument(), ) shouldReset = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) succeed = true shouldReset = false fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => rendered.getByText('error boundary')) consoleMock.mockRestore() }) @@ -540,13 +548,13 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await vi.waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => rendered.getByText('retry')) fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await vi.waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => rendered.getByText('retry')) fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => rendered.getByText('error boundary')) expect(fetchCount).toBe(3) consoleMock.mockRestore() }) @@ -605,13 +613,13 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await vi.waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => rendered.getByText('retry')) fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await vi.waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => rendered.getByText('retry')) fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('data')) + await vi.waitFor(() => rendered.getByText('data')) expect(fetchCount).toBe(3) expect(renders).toBe(1) consoleMock.mockRestore() @@ -692,20 +700,21 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument(), ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('data')).toBeInTheDocument(), ) consoleMock.mockRestore() }) }) + describe('useQueries', () => { it('should retry fetch if the reset error boundary has been reset', async () => { const consoleMock = vi @@ -762,15 +771,15 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument(), ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('data')).toBeInTheDocument(), ) consoleMock.mockRestore() @@ -832,15 +841,15 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument(), ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('data')).toBeInTheDocument(), ) consoleMock.mockRestore()