diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx index 7b523aea99..652755319b 100644 --- a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx @@ -833,4 +833,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 act(resolveQueries) + + expect(rendered.getByText('data1: cached')).toBeInTheDocument() + expect(rendered.getByText('data2: data2')).toBeInTheDocument() + }) })