Skip to content

Commit ff13c2e

Browse files
sukvvonmanudeli
andauthored
test(react-query/usePrefetchInfiniteQuery): use precise time in 'advanceTimersByTimeAsync', and add 'expect' using 'toBeInTheDocument' (#9447)
Co-authored-by: Jonghyeon Ko <[email protected]>
1 parent efb14d6 commit ff13c2e

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

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

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -106,19 +106,21 @@ describe('usePrefetchInfiniteQuery', () => {
106106

107107
const rendered = renderWithClient(queryClient, <App />)
108108

109-
await act(() => vi.advanceTimersByTimeAsync(31))
109+
await act(() => vi.advanceTimersByTimeAsync(30))
110110
rendered.getByText('data: Do you fetch on render?')
111111
fireEvent.click(rendered.getByText('Next Page'))
112-
rendered.getByText('data: Or do you render as you fetch?')
112+
expect(
113+
rendered.getByText('data: Or do you render as you fetch?'),
114+
).toBeInTheDocument()
113115
fireEvent.click(rendered.getByText('Next Page'))
114-
rendered.getByText('data: Either way, Tanstack Query helps you!')
116+
expect(
117+
rendered.getByText('data: Either way, Tanstack Query helps you!'),
118+
).toBeInTheDocument()
115119
expect(Fallback).toHaveBeenCalledTimes(1)
116120
expect(queryOpts.queryFn).toHaveBeenCalledTimes(3)
117121
})
118122

119123
it('should not display fallback if the query cache is already populated', async () => {
120-
vi.useRealTimers()
121-
122124
const queryOpts = {
123125
queryKey: queryKey(),
124126
...generateInfiniteQueryOptions([
@@ -128,7 +130,8 @@ describe('usePrefetchInfiniteQuery', () => {
128130
]),
129131
}
130132

131-
await queryClient.prefetchInfiniteQuery({ ...queryOpts, pages: 3 })
133+
queryClient.prefetchInfiniteQuery({ ...queryOpts, pages: 3 })
134+
await vi.advanceTimersByTimeAsync(30)
132135
;(queryOpts.queryFn as Mock).mockClear()
133136

134137
function App() {
@@ -146,11 +149,11 @@ describe('usePrefetchInfiniteQuery', () => {
146149

147150
const rendered = renderWithClient(queryClient, <App />)
148151

149-
rendered.getByText('data: Prefetch rocks!')
152+
expect(rendered.getByText('data: Prefetch rocks!')).toBeInTheDocument()
150153
fireEvent.click(rendered.getByText('Next Page'))
151-
rendered.getByText('data: No waterfalls, boy!')
154+
expect(rendered.getByText('data: No waterfalls, boy!')).toBeInTheDocument()
152155
fireEvent.click(rendered.getByText('Next Page'))
153-
rendered.getByText('data: Tanstack Query #ftw')
156+
expect(rendered.getByText('data: Tanstack Query #ftw')).toBeInTheDocument()
154157
expect(queryOpts.queryFn).not.toHaveBeenCalled()
155158
expect(Fallback).not.toHaveBeenCalled()
156159
})
@@ -185,14 +188,14 @@ describe('usePrefetchInfiniteQuery', () => {
185188

186189
const rendered = renderWithClient(queryClient, <App />)
187190

188-
await act(() => vi.advanceTimersByTimeAsync(11))
191+
await act(() => vi.advanceTimersByTimeAsync(10))
189192
rendered.getByText('data: Infinite Page 1')
190193
fireEvent.click(rendered.getByText('Next Page'))
191194
await vi.advanceTimersByTimeAsync(11)
192-
rendered.getByText('data: Infinite Page 2')
195+
expect(rendered.getByText('data: Infinite Page 2')).toBeInTheDocument()
193196
fireEvent.click(rendered.getByText('Next Page'))
194197
await vi.advanceTimersByTimeAsync(11)
195-
rendered.getByText('data: Infinite Page 3')
198+
expect(rendered.getByText('data: Infinite Page 3')).toBeInTheDocument()
196199
expect(queryOpts.queryFn).toHaveBeenCalledTimes(3)
197200
})
198201
})

0 commit comments

Comments
 (0)