-
-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Expand file tree
/
Copy pathinfiniteQueryOptions.test-d.tsx
More file actions
75 lines (67 loc) · 2 KB
/
infiniteQueryOptions.test-d.tsx
File metadata and controls
75 lines (67 loc) · 2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import { describe, expectTypeOf, it } from 'vitest'
import { dataTagSymbol } from '@tanstack/query-core'
import { useInfiniteQuery } from '../useInfiniteQuery'
import { infiniteQueryOptions } from '../infiniteQueryOptions'
import type { InfiniteData } from '@tanstack/query-core'
import type {
DefinedInitialDataInfiniteOptions,
UndefinedInitialDataInfiniteOptions,
} from '../infiniteQueryOptions'
describe('infiniteQueryOptions', () => {
it('should infer defined types', () => {
const options = infiniteQueryOptions({
getNextPageParam: () => 10,
queryKey: ['key'],
queryFn: () => ({ wow: true }),
initialData: {
pageParams: [undefined],
pages: [{ wow: true }],
},
initialPageParam: 0,
})
expectTypeOf(useInfiniteQuery(() => options).data).toEqualTypeOf<
InfiniteData<{ wow: boolean }, unknown>
>()
expectTypeOf(options).toExtend<
ReturnType<
DefinedInitialDataInfiniteOptions<
{ wow: boolean },
Error,
InfiniteData<{ wow: boolean }, unknown>,
Array<string>,
number | undefined
>
>
>()
expectTypeOf(options.queryKey[dataTagSymbol]).toEqualTypeOf<
InfiniteData<{ wow: boolean }>
>()
})
it('should work without defined types', () => {
const options = infiniteQueryOptions({
getNextPageParam: () => undefined,
queryKey: ['key'],
queryFn: () => ({ wow: true }),
initialPageParam: 0,
})
expectTypeOf(() => useInfiniteQuery(() => options).data).toEqualTypeOf<
() => InfiniteData<{ wow: boolean }, unknown> | undefined
>()
expectTypeOf(options).toExtend<
ReturnType<
UndefinedInitialDataInfiniteOptions<
{ wow: boolean },
Error,
InfiniteData<{ wow: boolean }, unknown>,
Array<string>,
number
>
>
>()
expectTypeOf(options.queryKey[dataTagSymbol]).toEqualTypeOf<
InfiniteData<{
wow: boolean
}>
>()
})
})