From d621f63b57da1e21502a06a9e6475e4c631cb154 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 22 Feb 2026 23:01:18 +0900 Subject: [PATCH 1/2] test(solid-query/useQuery): add test for 'isRestoring' transition from true to false triggering refetch --- .../src/__tests__/useQuery.test.tsx | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/packages/solid-query/src/__tests__/useQuery.test.tsx b/packages/solid-query/src/__tests__/useQuery.test.tsx index 745621d1715..42fb5306656 100644 --- a/packages/solid-query/src/__tests__/useQuery.test.tsx +++ b/packages/solid-query/src/__tests__/useQuery.test.tsx @@ -25,6 +25,7 @@ import { sleep, } from '@tanstack/query-test-utils' import { + IsRestoringProvider, QueryCache, QueryClient, QueryClientProvider, @@ -6159,6 +6160,53 @@ describe('useQuery', () => { expect(rendered.getByText('data: 3')).toBeInTheDocument() }) + it('should not fetch while restoring and refetch after restoring is complete', async () => { + const key = queryKey() + const queryFn = vi + .fn() + .mockImplementation(() => sleep(10).then(() => 'data')) + + const [isRestoring, setIsRestoring] = createSignal(true) + + function Page() { + const query = useQuery(() => ({ + queryKey: key, + queryFn, + })) + + return ( +
+
{query.status}
+
{query.fetchStatus}
+
{query.data ?? 'undefined'}
+
+ ) + } + + const rendered = render(() => ( + + + + + + )) + + await vi.advanceTimersByTimeAsync(0) + + expect(rendered.getByTestId('status')).toHaveTextContent('pending') + expect(rendered.getByTestId('fetchStatus')).toHaveTextContent('idle') + expect(rendered.getByTestId('data')).toHaveTextContent('undefined') + expect(queryFn).toHaveBeenCalledTimes(0) + + // Restoring complete: should refetch + setIsRestoring(false) + await vi.advanceTimersByTimeAsync(10) + + expect(rendered.getByTestId('status')).toHaveTextContent('success') + expect(rendered.getByTestId('data')).toHaveTextContent('data') + expect(queryFn).toHaveBeenCalledTimes(1) + }) + it('should use provided custom queryClient', async () => { const key = queryKey() const queryFn = () => sleep(10).then(() => 'custom client') From 8e8b7765d43e9818a82fce2e697f62752c9f184b Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 22 Feb 2026 23:03:43 +0900 Subject: [PATCH 2/2] test(solid-query/useQuery): add 'fetchStatus' assertion after restoring completes --- packages/solid-query/src/__tests__/useQuery.test.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/solid-query/src/__tests__/useQuery.test.tsx b/packages/solid-query/src/__tests__/useQuery.test.tsx index 42fb5306656..2642b159ae4 100644 --- a/packages/solid-query/src/__tests__/useQuery.test.tsx +++ b/packages/solid-query/src/__tests__/useQuery.test.tsx @@ -6203,6 +6203,7 @@ describe('useQuery', () => { await vi.advanceTimersByTimeAsync(10) expect(rendered.getByTestId('status')).toHaveTextContent('success') + expect(rendered.getByTestId('fetchStatus')).toHaveTextContent('idle') expect(rendered.getByTestId('data')).toHaveTextContent('data') expect(queryFn).toHaveBeenCalledTimes(1) })