From d03f6c2102b8165508928e03a077b455efe93439 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 14 Feb 2026 12:18:02 +0900 Subject: [PATCH] test(preact-query/useSuspenseQueries): add test for suspending only pending queries when some already have cached data --- .../src/__tests__/useSuspenseQueries.test.tsx | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx b/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx index 4e06afabe2..7eadb2f1e3 100644 --- a/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx +++ b/packages/preact-query/src/__tests__/useSuspenseQueries.test.tsx @@ -855,4 +855,47 @@ describe('useSuspenseQueries 2', () => { consoleErrorSpy.mockRestore() process.env.NODE_ENV = envCopy }) + + it('should only suspend queries that are pending when some queries already have data', async () => { + const key1 = queryKey() + const key2 = queryKey() + + queryClient.setQueryData(key1, 'cached') + + function Page() { + const [result1, result2] = useSuspenseQueries({ + queries: [ + { + queryKey: key1, + queryFn: () => sleep(QUERY_DURATION).then(() => 'data1'), + }, + { + queryKey: key2, + queryFn: () => sleep(QUERY_DURATION).then(() => 'data2'), + }, + ], + }) + + return ( +
+
data1: {result1.data}
+
data2: {result2.data}
+
+ ) + } + + const rendered = renderWithClient( + queryClient, + loading}> + + , + ) + + expect(rendered.getByText('loading')).toBeInTheDocument() + + await vi.advanceTimersByTimeAsync(QUERY_DURATION) + + expect(rendered.getByText('data1: cached')).toBeInTheDocument() + expect(rendered.getByText('data2: data2')).toBeInTheDocument() + }) })