diff --git a/src/react/ReactQueryErrorResetBoundary.tsx b/src/react/ReactQueryErrorResetBoundary.tsx index ac6a8adf92..af5edb39f5 100644 --- a/src/react/ReactQueryErrorResetBoundary.tsx +++ b/src/react/ReactQueryErrorResetBoundary.tsx @@ -9,7 +9,7 @@ interface ReactQueryErrorResetBoundaryValue { } function createValue(): ReactQueryErrorResetBoundaryValue { - let isReset = true + let isReset = false return { clearReset: () => { isReset = false diff --git a/src/react/tests/ReactQueryResetErrorBoundary.test.tsx b/src/react/tests/ReactQueryResetErrorBoundary.test.tsx new file mode 100644 index 0000000000..c708914488 --- /dev/null +++ b/src/react/tests/ReactQueryResetErrorBoundary.test.tsx @@ -0,0 +1,66 @@ +import { render, waitFor, fireEvent } from '@testing-library/react' +import { ErrorBoundary } from 'react-error-boundary' +import * as React from 'react' + +import { sleep, queryKey, mockConsoleError } from './utils' +import { useQuery, ReactQueryErrorResetBoundary } from '../..' + +describe('ReactQueryResetErrorBoundary', () => { + it('should retry fetch if the reset error boundary has been reset', async () => { + const key = queryKey() + + let succeed = false + const consoleMock = mockConsoleError() + + function Page() { + const { data } = useQuery( + key, + async () => { + await sleep(10) + if (!succeed) { + throw new Error('Error') + } else { + return 'data' + } + }, + { + retry: false, + useErrorBoundary: true, + } + ) + return