Skip to content

Commit 52d78d2

Browse files
committed
test(preact-query/useQuery): add test for not fetching during restoring period when 'isRestoring' is true
1 parent eb7dca5 commit 52d78d2

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

packages/preact-query/src/__tests__/useQuery.test.tsx

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { afterEach, beforeEach, describe, expect, it, test, vi } from 'vitest'
1616
import type { Mock } from 'vitest'
1717

1818
import {
19+
IsRestoringProvider,
1920
QueryCache,
2021
QueryClient,
2122
dehydrate,
@@ -6782,4 +6783,47 @@ describe('useQuery', () => {
67826783

67836784
consoleErrorMock.mockRestore()
67846785
})
6786+
6787+
it('should not fetch for the duration of the restoring period when isRestoring is true', async () => {
6788+
const key = queryKey()
6789+
const queryFn = vi
6790+
.fn()
6791+
.mockImplementation(() => sleep(10).then(() => 'data'))
6792+
6793+
function Page() {
6794+
const result = useQuery({
6795+
queryKey: key,
6796+
queryFn,
6797+
})
6798+
6799+
return (
6800+
<div>
6801+
<div data-testid="status">{result.status}</div>
6802+
<div data-testid="fetchStatus">{result.fetchStatus}</div>
6803+
<div data-testid="data">{result.data ?? 'undefined'}</div>
6804+
</div>
6805+
)
6806+
}
6807+
6808+
const rendered = renderWithClient(
6809+
queryClient,
6810+
<IsRestoringProvider value={true}>
6811+
<Page />
6812+
</IsRestoringProvider>,
6813+
)
6814+
6815+
await vi.advanceTimersByTimeAsync(0)
6816+
6817+
expect(rendered.getByTestId('status')).toHaveTextContent('pending')
6818+
expect(rendered.getByTestId('fetchStatus')).toHaveTextContent('idle')
6819+
expect(rendered.getByTestId('data')).toHaveTextContent('undefined')
6820+
expect(queryFn).toHaveBeenCalledTimes(0)
6821+
6822+
await vi.advanceTimersByTimeAsync(11)
6823+
6824+
expect(rendered.getByTestId('status')).toHaveTextContent('pending')
6825+
expect(rendered.getByTestId('fetchStatus')).toHaveTextContent('idle')
6826+
expect(rendered.getByTestId('data')).toHaveTextContent('undefined')
6827+
expect(queryFn).toHaveBeenCalledTimes(0)
6828+
})
67856829
})

0 commit comments

Comments
 (0)