Skip to content

Commit 2bcc893

Browse files
committed
test: add ssr test for infinite queries
1 parent 8a61316 commit 2bcc893

File tree

1 file changed

+40
-1
lines changed

1 file changed

+40
-1
lines changed

src/react/tests/ssr.test.tsx

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,13 @@ import React from 'react'
77
import { renderToString } from 'react-dom/server'
88

99
import { sleep, queryKey } from './utils'
10-
import { useQuery, QueryClient, QueryClientProvider, QueryCache } from '../..'
10+
import {
11+
useQuery,
12+
QueryClient,
13+
QueryClientProvider,
14+
QueryCache,
15+
useInfiniteQuery,
16+
} from '../..'
1117

1218
describe('Server Side Rendering', () => {
1319
it('should not trigger fetch', () => {
@@ -112,4 +118,37 @@ describe('Server Side Rendering', () => {
112118
expect(keys).toEqual([[key, 1]])
113119
queryCache.clear()
114120
})
121+
122+
it('useInfiniteQuery should return the correct state', async () => {
123+
const queryCache = new QueryCache()
124+
const queryClient = new QueryClient({ queryCache })
125+
const key = queryKey()
126+
const queryFn = jest.fn(async () => {
127+
await sleep(5)
128+
return 'page 1'
129+
})
130+
131+
function Page() {
132+
const query = useInfiniteQuery(key, queryFn)
133+
return (
134+
<ul>
135+
{query.data?.pages?.map(page => (
136+
<li key={page}>{page}</li>
137+
))}
138+
</ul>
139+
)
140+
}
141+
142+
await queryClient.prefetchInfiniteQuery(key, queryFn)
143+
144+
const markup = renderToString(
145+
<QueryClientProvider client={queryClient}>
146+
<Page />
147+
</QueryClientProvider>
148+
)
149+
150+
expect(markup).toContain('page 1')
151+
expect(queryFn).toHaveBeenCalledTimes(1)
152+
queryCache.clear()
153+
})
115154
})

0 commit comments

Comments
 (0)