Skip to content

Commit 73e67fc

Browse files
committed
test(react-query/ssr): add 'useQueries' test for SSR
1 parent f64ac77 commit 73e67fc

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

packages/react-query/src/__tests__/ssr.test.tsx

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
QueryClient,
88
QueryClientProvider,
99
useInfiniteQuery,
10+
useQueries,
1011
useQuery,
1112
} from '..'
1213
import { setIsServer } from './utils'
@@ -173,4 +174,46 @@ describe('Server Side Rendering', () => {
173174

174175
queryCache.clear()
175176
})
177+
178+
it('useQueries should return existing data from the cache', async () => {
179+
const key1 = queryKey()
180+
const key2 = queryKey()
181+
const queryFn1 = () => sleep(10).then(() => 'data1')
182+
const queryFn2 = () => sleep(10).then(() => 'data2')
183+
184+
function Page() {
185+
const queries = useQueries({
186+
queries: [
187+
{ queryKey: key1, queryFn: queryFn1 },
188+
{ queryKey: key2, queryFn: queryFn2 },
189+
],
190+
})
191+
192+
return (
193+
<div>
194+
<div>{`status1: ${queries[0].status}`}</div>
195+
<div>{`status2: ${queries[1].status}`}</div>
196+
<div>{`data1: ${queries[0].data}`}</div>
197+
<div>{`data2: ${queries[1].data}`}</div>
198+
</div>
199+
)
200+
}
201+
202+
queryClient.prefetchQuery({ queryKey: key1, queryFn: queryFn1 })
203+
queryClient.prefetchQuery({ queryKey: key2, queryFn: queryFn2 })
204+
await vi.advanceTimersByTimeAsync(10)
205+
206+
const markup = renderToString(
207+
<QueryClientProvider client={queryClient}>
208+
<Page />
209+
</QueryClientProvider>,
210+
)
211+
212+
expect(markup).toContain('status1: success')
213+
expect(markup).toContain('status2: success')
214+
expect(markup).toContain('data1: data1')
215+
expect(markup).toContain('data2: data2')
216+
217+
queryCache.clear()
218+
})
176219
})

0 commit comments

Comments
 (0)