Skip to content

Commit c89c6a0

Browse files
authored
test(query-core): add test case for InfiniteQueryObserver (#9141)
1 parent 696fd44 commit c89c6a0

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest'
22
import { queryKey, sleep } from '@tanstack/query-test-utils'
33
import { InfiniteQueryObserver, QueryClient } from '..'
4+
import type {
5+
DefaultedInfiniteQueryObserverOptions,
6+
InfiniteData,
7+
} from '../types'
48

59
describe('InfiniteQueryObserver', () => {
610
let queryClient: QueryClient
@@ -202,4 +206,49 @@ describe('InfiniteQueryObserver', () => {
202206
expect(queryFn).toBeCalledTimes(3)
203207
expect(observer.getCurrentResult().hasNextPage).toBe(false)
204208
})
209+
210+
test('getOptimisticResult should set infinite query behavior and return initial state', () => {
211+
const key = queryKey()
212+
const observer = new InfiniteQueryObserver(queryClient, {
213+
queryKey: key,
214+
queryFn: () => sleep(10).then(() => 1),
215+
initialPageParam: 1,
216+
getNextPageParam: () => 2,
217+
})
218+
219+
const options: DefaultedInfiniteQueryObserverOptions<
220+
number,
221+
Error,
222+
InfiniteData<number>,
223+
number,
224+
typeof key,
225+
number
226+
> = {
227+
queryKey: key,
228+
queryFn: () => sleep(10).then(() => 1),
229+
initialPageParam: 1,
230+
getNextPageParam: () => 2,
231+
throwOnError: true,
232+
refetchOnReconnect: false,
233+
queryHash: key.join(''),
234+
behavior: undefined,
235+
}
236+
237+
const result = observer.getOptimisticResult(options)
238+
239+
expect(options.behavior).toBeDefined()
240+
expect(options.behavior?.onFetch).toBeDefined()
241+
242+
expect(result).toMatchObject({
243+
data: undefined,
244+
hasNextPage: false,
245+
hasPreviousPage: false,
246+
isFetching: false,
247+
isFetchingNextPage: false,
248+
isFetchingPreviousPage: false,
249+
isError: false,
250+
isRefetchError: false,
251+
isRefetching: false,
252+
})
253+
})
205254
})

0 commit comments

Comments
 (0)