Skip to content

Commit 44c3cb9

Browse files
authored
test(react-query/ssr): add 'useQueries' test for SSR (#9996)
1 parent f616474 commit 44c3cb9

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

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

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
QueryClientProvider,
99
useInfiniteQuery,
1010
useIsFetching,
11+
useQueries,
1112
useQuery,
1213
} from '..'
1314
import { setIsServer } from './utils'
@@ -205,4 +206,46 @@ describe('Server Side Rendering', () => {
205206

206207
queryCache.clear()
207208
})
209+
210+
it('useQueries should return existing data from the cache', async () => {
211+
const key1 = queryKey()
212+
const key2 = queryKey()
213+
const queryFn1 = () => sleep(10).then(() => 'data1')
214+
const queryFn2 = () => sleep(10).then(() => 'data2')
215+
216+
function Page() {
217+
const queries = useQueries({
218+
queries: [
219+
{ queryKey: key1, queryFn: queryFn1 },
220+
{ queryKey: key2, queryFn: queryFn2 },
221+
],
222+
})
223+
224+
return (
225+
<div>
226+
<div>{`status1: ${queries[0].status}`}</div>
227+
<div>{`status2: ${queries[1].status}`}</div>
228+
<div>{`data1: ${queries[0].data}`}</div>
229+
<div>{`data2: ${queries[1].data}`}</div>
230+
</div>
231+
)
232+
}
233+
234+
queryClient.prefetchQuery({ queryKey: key1, queryFn: queryFn1 })
235+
queryClient.prefetchQuery({ queryKey: key2, queryFn: queryFn2 })
236+
await vi.advanceTimersByTimeAsync(10)
237+
238+
const markup = renderToString(
239+
<QueryClientProvider client={queryClient}>
240+
<Page />
241+
</QueryClientProvider>,
242+
)
243+
244+
expect(markup).toContain('status1: success')
245+
expect(markup).toContain('status2: success')
246+
expect(markup).toContain('data1: data1')
247+
expect(markup).toContain('data2: data2')
248+
249+
queryCache.clear()
250+
})
208251
})

0 commit comments

Comments
 (0)