Skip to content

Commit 95922e7

Browse files
committed
refactor(tests): adapt useInfiniteQuery test
copied over from the react-18 branch, because that impl is less flaky
1 parent 942805f commit 95922e7

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

src/reactjs/tests/useInfiniteQuery.test.tsx

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -197,25 +197,28 @@ describe('useInfiniteQuery', () => {
197197

198198
states.push(state)
199199

200-
const { fetchNextPage } = state
200+
return (
201+
<div>
202+
<button onClick={() => state.fetchNextPage()}>fetchNextPage</button>
203+
<button onClick={() => setOrder('asc')}>order</button>
204+
<div>data: {state.data?.pages.join(',') ?? 'null'}</div>
205+
<div>isFetching: {String(state.isFetching)}</div>
206+
</div>
207+
)
208+
}
201209

202-
React.useEffect(() => {
203-
setActTimeout(() => {
204-
fetchNextPage()
205-
}, 50)
206-
setActTimeout(() => {
207-
setOrder('asc')
208-
}, 100)
209-
}, [fetchNextPage])
210+
const rendered = renderWithClient(queryClient, <Page />)
210211

211-
return null
212-
}
212+
await waitFor(() => rendered.getByText('data: 0-desc'))
213+
rendered.getByRole('button', { name: /fetchNextPage/i }).click()
213214

214-
renderWithClient(queryClient, <Page />)
215+
await waitFor(() => rendered.getByText('data: 0-desc,1-desc'))
216+
rendered.getByRole('button', { name: /order/i }).click()
215217

216-
await sleep(300)
218+
await waitFor(() => rendered.getByText('data: 0-asc'))
219+
await waitFor(() => rendered.getByText('isFetching: false'))
220+
await waitFor(() => expect(states.length).toBe(7))
217221

218-
expect(states.length).toBe(7)
219222
expect(states[0]).toMatchObject({
220223
data: undefined,
221224
isFetching: true,

0 commit comments

Comments
 (0)