@orpc/react 0.10.0-beta.1 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/index.js +0 -1
  2. package/dist/src/general-hooks.d.ts +0 -1
  3. package/dist/src/general-utils.d.ts +0 -1
  4. package/dist/src/index.d.ts +0 -1
  5. package/dist/src/orpc-path.d.ts +0 -1
  6. package/dist/src/procedure-hooks.d.ts +0 -1
  7. package/dist/src/procedure-utils.d.ts +0 -1
  8. package/dist/src/react-context.d.ts +0 -1
  9. package/dist/src/react-hooks.d.ts +0 -1
  10. package/dist/src/react-utils.d.ts +0 -1
  11. package/dist/src/react.d.ts +0 -1
  12. package/dist/src/tanstack-key.d.ts +0 -1
  13. package/dist/src/tanstack-query.d.ts +0 -1
  14. package/dist/src/types.d.ts +0 -1
  15. package/dist/src/use-queries/builder.d.ts +0 -1
  16. package/dist/src/use-queries/builders.d.ts +0 -1
  17. package/dist/src/use-queries/hook.d.ts +0 -1
  18. package/package.json +12 -16
  19. package/dist/index.js.map +0 -1
  20. package/dist/src/general-hooks.d.ts.map +0 -1
  21. package/dist/src/general-utils.d.ts.map +0 -1
  22. package/dist/src/index.d.ts.map +0 -1
  23. package/dist/src/orpc-path.d.ts.map +0 -1
  24. package/dist/src/procedure-hooks.d.ts.map +0 -1
  25. package/dist/src/procedure-utils.d.ts.map +0 -1
  26. package/dist/src/react-context.d.ts.map +0 -1
  27. package/dist/src/react-hooks.d.ts.map +0 -1
  28. package/dist/src/react-utils.d.ts.map +0 -1
  29. package/dist/src/react.d.ts.map +0 -1
  30. package/dist/src/tanstack-key.d.ts.map +0 -1
  31. package/dist/src/tanstack-query.d.ts.map +0 -1
  32. package/dist/src/types.d.ts.map +0 -1
  33. package/dist/src/use-queries/builder.d.ts.map +0 -1
  34. package/dist/src/use-queries/builders.d.ts.map +0 -1
  35. package/dist/src/use-queries/hook.d.ts.map +0 -1
  36. package/dist/tsconfig.tsbuildinfo +0 -1
  37. package/src/general-hooks.test-d.ts +0 -151
  38. package/src/general-hooks.test.tsx +0 -232
  39. package/src/general-hooks.ts +0 -101
  40. package/src/general-utils.test-d.ts +0 -454
  41. package/src/general-utils.test.tsx +0 -818
  42. package/src/general-utils.ts +0 -393
  43. package/src/index.ts +0 -8
  44. package/src/orpc-path.test-d.ts +0 -13
  45. package/src/orpc-path.test.ts +0 -12
  46. package/src/orpc-path.ts +0 -24
  47. package/src/procedure-hooks.test-d.ts +0 -321
  48. package/src/procedure-hooks.test.tsx +0 -388
  49. package/src/procedure-hooks.ts +0 -271
  50. package/src/procedure-utils.test-d.ts +0 -476
  51. package/src/procedure-utils.test.tsx +0 -330
  52. package/src/procedure-utils.ts +0 -312
  53. package/src/react-context.ts +0 -43
  54. package/src/react-hooks.ts +0 -94
  55. package/src/react-utils.ts +0 -98
  56. package/src/react.test-d.ts +0 -89
  57. package/src/react.test.tsx +0 -102
  58. package/src/react.tsx +0 -81
  59. package/src/tanstack-key.test-d.ts +0 -35
  60. package/src/tanstack-key.test.ts +0 -62
  61. package/src/tanstack-key.ts +0 -64
  62. package/src/tanstack-query.ts +0 -27
  63. package/src/types.ts +0 -7
  64. package/src/use-queries/builder.test-d.ts +0 -29
  65. package/src/use-queries/builder.test.ts +0 -25
  66. package/src/use-queries/builder.ts +0 -71
  67. package/src/use-queries/builders.test-d.ts +0 -30
  68. package/src/use-queries/builders.test.tsx +0 -29
  69. package/src/use-queries/builders.ts +0 -101
  70. package/src/use-queries/hook.test-d.ts +0 -64
  71. package/src/use-queries/hook.test.tsx +0 -89
  72. package/src/use-queries/hook.ts +0 -57
@@ -1,818 +0,0 @@
1
- import type { SchemaOutput } from '@orpc/contract'
2
- import type {
3
- UserCreateInputSchema,
4
- UserFindInputSchema,
5
- UserListInputSchema,
6
- UserListOutputSchema,
7
- UserSchema,
8
- } from '../tests/orpc'
9
- import {
10
- QueryClient,
11
- useInfiniteQuery,
12
- useMutation,
13
- useQuery,
14
- } from '@tanstack/react-query'
15
- import { renderHook } from '@testing-library/react'
16
- import { createGeneralUtils } from './general-utils'
17
-
18
- let qc = new QueryClient()
19
-
20
- let user_utils = createGeneralUtils({
21
- queryClient: qc,
22
- path: ['user'],
23
- })
24
-
25
- let user_find_utils = createGeneralUtils<
26
- typeof UserFindInputSchema,
27
- typeof UserSchema,
28
- SchemaOutput<typeof UserSchema>
29
- >({
30
- queryClient: qc,
31
- path: ['user', 'find'],
32
- })
33
-
34
- let user_list_utils = createGeneralUtils<
35
- typeof UserListInputSchema,
36
- typeof UserListOutputSchema,
37
- SchemaOutput<typeof UserListOutputSchema>
38
- >({
39
- queryClient: qc,
40
- path: ['user', 'list'],
41
- })
42
-
43
- let user_create_utils = createGeneralUtils<
44
- typeof UserCreateInputSchema,
45
- typeof UserSchema,
46
- SchemaOutput<typeof UserSchema>
47
- >({
48
- queryClient: qc,
49
- path: ['user', 'create'],
50
- })
51
-
52
- beforeEach(() => {
53
- qc = new QueryClient()
54
- user_utils = createGeneralUtils({
55
- queryClient: qc,
56
- path: ['user'],
57
- })
58
-
59
- user_find_utils = createGeneralUtils<
60
- typeof UserFindInputSchema,
61
- typeof UserSchema,
62
- SchemaOutput<typeof UserSchema>
63
- >({
64
- queryClient: qc,
65
- path: ['user', 'find'],
66
- })
67
-
68
- user_list_utils = createGeneralUtils<
69
- typeof UserListInputSchema,
70
- typeof UserListOutputSchema,
71
- SchemaOutput<typeof UserListOutputSchema>
72
- >({
73
- queryClient: qc,
74
- path: ['user', 'list'],
75
- })
76
-
77
- user_create_utils = createGeneralUtils<
78
- typeof UserCreateInputSchema,
79
- typeof UserSchema,
80
- SchemaOutput<typeof UserSchema>
81
- >({
82
- queryClient: qc,
83
- path: ['user', 'create'],
84
- })
85
- })
86
-
87
- it('getQueriesData', () => {
88
- const user = {
89
- id: '123',
90
- name: '123-4',
91
- }
92
-
93
- qc.setQueryData(
94
- [['user', 'find'], { input: { id: user.id }, type: 'infinite' }],
95
- 'never get this',
96
- )
97
- qc.setQueryData(
98
- [['user', 'find'], { input: { id: user.id }, type: 'query' }],
99
- user,
100
- )
101
-
102
- expect(user_utils.getQueriesData().length).toEqual(1)
103
- expect(user_utils.getQueriesData()[0]?.[1]).toEqual(user)
104
-
105
- expect(user_find_utils.getQueriesData().length).toEqual(1)
106
- expect(user_find_utils.getQueriesData()[0]?.[1]).toEqual(user)
107
- expect(
108
- user_find_utils.getQueriesData({ input: { id: user.id } }).length,
109
- ).toEqual(1)
110
-
111
- expect(
112
- user_find_utils.getQueriesData({ input: { id: 'diff' } }).length,
113
- ).toEqual(0)
114
- expect(user_list_utils.getQueriesData().length).toEqual(0)
115
- })
116
-
117
- it('getInfiniteQueriesData', () => {
118
- const page = {
119
- nextCursor: 1,
120
- users: [],
121
- }
122
-
123
- qc.setQueryData([['user', 'list'], { type: 'infinite' }], page)
124
- qc.setQueryData([['user', 'list'], { type: 'query' }], 'never get this')
125
-
126
- expect(user_utils.getInfiniteQueriesData().length).toEqual(1)
127
- expect(user_utils.getInfiniteQueriesData()[0]?.[1]).toEqual(page)
128
-
129
- expect(user_list_utils.getInfiniteQueriesData().length).toEqual(1)
130
- expect(user_list_utils.getInfiniteQueriesData()[0]?.[1]).toEqual(page)
131
-
132
- expect(
133
- user_list_utils.getInfiniteQueriesData({ input: { keyword: 'invalid' } })
134
- .length,
135
- ).toEqual(0)
136
- expect(user_find_utils.getInfiniteQueriesData().length).toEqual(0)
137
- })
138
-
139
- it('setQueriesData', () => {
140
- const page = {
141
- nextCursor: 1,
142
- users: [],
143
- }
144
-
145
- const user = {
146
- id: '123',
147
- name: '123-4',
148
- }
149
-
150
- qc.setQueryData(
151
- [['user', 'find'], { input: { id: user.id }, type: 'infinite' }],
152
- page,
153
- )
154
- qc.setQueryData(
155
- [['user', 'find'], { input: { id: user.id }, type: 'query' }],
156
- user,
157
- )
158
-
159
- const user2 = {
160
- ...user,
161
- id: 'user-2',
162
- }
163
-
164
- user_utils.setQueriesData({}, (old: any) => {
165
- expect(old).toBe(user)
166
-
167
- return user2
168
- })
169
-
170
- const user3 = {
171
- ...user2,
172
- id: 'user-2',
173
- }
174
-
175
- user_find_utils.setQueriesData({}, (old: any) => {
176
- expect(old).toEqual(user2)
177
-
178
- return user3
179
- })
180
-
181
- const fn = vi.fn()
182
- user_list_utils.setQueriesData({}, fn)
183
- expect(fn).not.toHaveBeenCalled()
184
-
185
- expect(
186
- qc.getQueryData([
187
- ['user', 'find'],
188
- { input: { id: user.id }, type: 'query' },
189
- ]),
190
- ).toEqual(user3)
191
- })
192
-
193
- it('setInfiniteQueriesData', () => {
194
- const page = {
195
- pageParams: [undefined],
196
- pages: [
197
- {
198
- nextCursor: 1,
199
- users: [],
200
- },
201
- ],
202
- }
203
-
204
- const user = {
205
- id: '123',
206
- name: '123-4',
207
- }
208
-
209
- qc.setQueryData([['user', 'list'], { type: 'infinite' }], page)
210
- qc.setQueryData([['user', 'list'], { type: 'query' }], user)
211
-
212
- const page2 = {
213
- ...page,
214
- page: 2,
215
- }
216
-
217
- user_utils.setInfiniteQueriesData({}, (old) => {
218
- expect(old).toBe(page)
219
-
220
- return page2
221
- })
222
-
223
- const page3 = {
224
- ...page,
225
- page: 3,
226
- }
227
-
228
- user_list_utils.setInfiniteQueriesData({}, (old) => {
229
- expect(old).toEqual(page2)
230
-
231
- return page3
232
- })
233
-
234
- const fn = vi.fn()
235
- user_find_utils.setQueriesData({}, fn)
236
- expect(fn).not.toHaveBeenCalled()
237
-
238
- expect(qc.getQueryData([['user', 'list'], { type: 'infinite' }])).toEqual(
239
- page3,
240
- )
241
- })
242
-
243
- describe('invalidate', () => {
244
- const infiniteQueryKey = [['user', 'list'], { type: 'infinite' }]
245
- const queryKey = [['user', 'list'], { type: 'query' }]
246
-
247
- const reset = () => {
248
- qc.setQueryData(infiniteQueryKey, 'page')
249
- qc.setQueryData(queryKey, 'user')
250
- }
251
-
252
- beforeEach(() => {
253
- reset()
254
-
255
- expect(qc.getQueryState(infiniteQueryKey)?.isInvalidated).toBe(false)
256
- expect(qc.getQueryState(queryKey)?.isInvalidated).toBe(false)
257
- })
258
-
259
- it('root level', () => {
260
- user_utils.invalidate()
261
-
262
- expect(qc.getQueryState(infiniteQueryKey)?.isInvalidated).toBe(true)
263
- expect(qc.getQueryState(queryKey)?.isInvalidated).toBe(true)
264
-
265
- reset()
266
- user_utils.invalidate({ queryType: 'query' })
267
-
268
- expect(qc.getQueryState(infiniteQueryKey)?.isInvalidated).toBe(false)
269
- expect(qc.getQueryState(queryKey)?.isInvalidated).toBe(true)
270
- })
271
-
272
- it('procedure level', () => {
273
- user_list_utils.invalidate()
274
-
275
- expect(qc.getQueryState(infiniteQueryKey)?.isInvalidated).toBe(true)
276
- expect(qc.getQueryState(queryKey)?.isInvalidated).toBe(true)
277
- })
278
-
279
- it('procedure level with filters', () => {
280
- user_list_utils.invalidate({ queryType: 'query' })
281
- expect(qc.getQueryState(infiniteQueryKey)?.isInvalidated).toBe(false)
282
- expect(qc.getQueryState(queryKey)?.isInvalidated).toBe(true)
283
-
284
- reset()
285
-
286
- user_list_utils.invalidate({ queryType: 'infinite' })
287
- expect(qc.getQueryState(infiniteQueryKey)?.isInvalidated).toBe(true)
288
- expect(qc.getQueryState(queryKey)?.isInvalidated).toBe(false)
289
- })
290
-
291
- it('on mismatched procedure level', () => {
292
- user_find_utils.invalidate()
293
- expect(qc.getQueryState(infiniteQueryKey)?.isInvalidated).toBe(false)
294
- expect(qc.getQueryState(queryKey)?.isInvalidated).toBe(false)
295
- })
296
- })
297
-
298
- describe('refetch', () => {
299
- const infiniteQueryKey = [['user', 'list'], { type: 'infinite' }]
300
- const queryKey = [['user', 'list'], { type: 'query' }]
301
-
302
- const fn1 = vi.fn(() => new Promise(resolve => setTimeout(resolve, 100)))
303
- const fn2 = vi.fn(() => new Promise(resolve => setTimeout(resolve, 100)))
304
-
305
- beforeEach(() => {
306
- fn1.mockClear()
307
- fn2.mockClear()
308
-
309
- renderHook(() =>
310
- useInfiniteQuery(
311
- {
312
- queryKey: infiniteQueryKey,
313
- queryFn: fn1,
314
- getNextPageParam: () => 2,
315
- initialPageParam: 1,
316
- },
317
- qc,
318
- ),
319
- )
320
-
321
- renderHook(() =>
322
- useQuery(
323
- {
324
- queryKey,
325
- queryFn: fn2,
326
- },
327
- qc,
328
- ),
329
- )
330
-
331
- expect(fn1).toHaveBeenCalledTimes(1)
332
- expect(fn2).toHaveBeenCalledTimes(1)
333
- })
334
-
335
- it('root level', async () => {
336
- user_utils.refetch()
337
-
338
- expect(fn1).toHaveBeenCalledTimes(1)
339
- expect(fn2).toHaveBeenCalledTimes(1)
340
-
341
- await new Promise(resolve => setTimeout(resolve, 101))
342
- user_utils.refetch()
343
-
344
- expect(fn1).toHaveBeenCalledTimes(2)
345
- expect(fn2).toHaveBeenCalledTimes(2)
346
- })
347
-
348
- it('root level with filters', async () => {
349
- user_utils.refetch({ queryType: 'query' })
350
- expect(fn1).toHaveBeenCalledTimes(1)
351
- expect(fn2).toHaveBeenCalledTimes(1)
352
-
353
- await new Promise(resolve => setTimeout(resolve, 101))
354
- user_utils.refetch({ queryType: 'query' })
355
-
356
- expect(fn1).toHaveBeenCalledTimes(1)
357
- expect(fn2).toHaveBeenCalledTimes(2)
358
- })
359
-
360
- it('procedure level', async () => {
361
- user_list_utils.refetch()
362
-
363
- expect(fn1).toHaveBeenCalledTimes(1)
364
- expect(fn2).toHaveBeenCalledTimes(1)
365
-
366
- await new Promise(resolve => setTimeout(resolve, 101))
367
- user_list_utils.refetch()
368
-
369
- expect(fn1).toHaveBeenCalledTimes(2)
370
- expect(fn2).toHaveBeenCalledTimes(2)
371
- })
372
-
373
- it('procedure level with filters', async () => {
374
- user_list_utils.refetch({ queryType: 'infinite' })
375
-
376
- expect(fn1).toHaveBeenCalledTimes(1)
377
- expect(fn2).toHaveBeenCalledTimes(1)
378
-
379
- await new Promise(resolve => setTimeout(resolve, 101))
380
- user_list_utils.refetch({ queryType: 'infinite' })
381
-
382
- expect(fn1).toHaveBeenCalledTimes(2)
383
- expect(fn2).toHaveBeenCalledTimes(1)
384
- })
385
-
386
- it('on mismatched procedure level', async () => {
387
- user_find_utils.refetch()
388
-
389
- expect(fn1).toHaveBeenCalledTimes(1)
390
- expect(fn2).toHaveBeenCalledTimes(1)
391
-
392
- await new Promise(resolve => setTimeout(resolve, 101))
393
- user_find_utils.refetch()
394
-
395
- expect(fn1).toHaveBeenCalledTimes(1)
396
- expect(fn2).toHaveBeenCalledTimes(1)
397
- })
398
- })
399
-
400
- describe('cancel', () => {
401
- const infiniteQueryKey = [['user', 'list'], { type: 'infinite' }]
402
- const queryKey = [['user', 'list'], { type: 'query' }]
403
-
404
- beforeEach(() => {
405
- renderHook(() =>
406
- useInfiniteQuery(
407
- {
408
- queryKey: infiniteQueryKey,
409
- queryFn: async () =>
410
- await new Promise(resolve => setTimeout(resolve, 100)),
411
- getNextPageParam: () => 2,
412
- initialPageParam: 1,
413
- },
414
- qc,
415
- ),
416
- )
417
-
418
- renderHook(() =>
419
- useQuery(
420
- {
421
- queryKey,
422
- queryFn: async () =>
423
- await new Promise(resolve => setTimeout(resolve, 100)),
424
- },
425
- qc,
426
- ),
427
- )
428
-
429
- expect(qc.getQueryState(infiniteQueryKey)?.fetchStatus).toBe('fetching')
430
- expect(qc.getQueryState(queryKey)?.fetchStatus).toBe('fetching')
431
- })
432
-
433
- it('root level', () => {
434
- user_utils.cancel()
435
-
436
- expect(qc.getQueryState(infiniteQueryKey)?.fetchStatus).toBe('idle')
437
- expect(qc.getQueryState(queryKey)?.fetchStatus).toBe('idle')
438
- })
439
-
440
- it('root level with filters', () => {
441
- user_utils.cancel({ queryType: 'query' })
442
-
443
- expect(qc.getQueryState(infiniteQueryKey)?.fetchStatus).toBe('fetching')
444
- expect(qc.getQueryState(queryKey)?.fetchStatus).toBe('idle')
445
- })
446
-
447
- it('procedure level', () => {
448
- user_list_utils.cancel()
449
-
450
- expect(qc.getQueryState(infiniteQueryKey)?.fetchStatus).toBe('idle')
451
- expect(qc.getQueryState(queryKey)?.fetchStatus).toBe('idle')
452
- })
453
-
454
- it('procedure level with filters', () => {
455
- user_list_utils.cancel({ queryType: 'infinite' })
456
-
457
- expect(qc.getQueryState(infiniteQueryKey)?.fetchStatus).toBe('idle')
458
- expect(qc.getQueryState(queryKey)?.fetchStatus).toBe('fetching')
459
- })
460
-
461
- it('on mismatched procedure level', () => {
462
- user_find_utils.cancel()
463
- expect(qc.getQueryState(infiniteQueryKey)?.fetchStatus).toBe('fetching')
464
- expect(qc.getQueryState(queryKey)?.fetchStatus).toBe('fetching')
465
- })
466
- })
467
-
468
- describe('remove', () => {
469
- const infiniteQueryKey = [['user', 'list'], { type: 'infinite' }]
470
- const queryKey = [['user', 'list'], { type: 'query' }]
471
-
472
- beforeEach(() => {
473
- qc.setQueryData(infiniteQueryKey, 'page')
474
- qc.setQueryData(queryKey, 'user')
475
-
476
- expect(qc.getQueryState(infiniteQueryKey)).not.toBe(undefined)
477
- expect(qc.getQueryState(queryKey)).not.toBe(undefined)
478
- })
479
-
480
- it('root level', () => {
481
- user_utils.remove()
482
-
483
- expect(qc.getQueryState(infiniteQueryKey)).toBe(undefined)
484
- expect(qc.getQueryState(queryKey)).toBe(undefined)
485
- })
486
-
487
- it('root level with filters', () => {
488
- user_utils.remove({ queryType: 'query' })
489
-
490
- expect(qc.getQueryState(infiniteQueryKey)).not.toBe(undefined)
491
- expect(qc.getQueryState(queryKey)).toBe(undefined)
492
- })
493
-
494
- it('procedure level', () => {
495
- user_list_utils.remove()
496
-
497
- expect(qc.getQueryState(infiniteQueryKey)).toBe(undefined)
498
- expect(qc.getQueryState(queryKey)).toBe(undefined)
499
- })
500
-
501
- it('procedure level with filters', () => {
502
- user_list_utils.remove({ queryType: 'infinite' })
503
-
504
- expect(qc.getQueryState(infiniteQueryKey)).toBe(undefined)
505
- expect(qc.getQueryState(queryKey)).not.toBe(undefined)
506
- })
507
-
508
- it('on mismatched procedure level', () => {
509
- user_find_utils.remove()
510
- expect(qc.getQueryState(infiniteQueryKey)).not.toBe(undefined)
511
- expect(qc.getQueryState(queryKey)).not.toBe(undefined)
512
- })
513
- })
514
-
515
- describe('reset', () => {
516
- const infiniteQueryKey = [['user', 'list'], { type: 'infinite' }]
517
- const queryKey = [['user', 'list'], { type: 'query' }]
518
-
519
- const fn1 = vi.fn(() => new Promise(resolve => setTimeout(resolve, 100)))
520
- const fn2 = vi.fn(() => new Promise(resolve => setTimeout(resolve, 100)))
521
-
522
- beforeEach(() => {
523
- fn1.mockClear()
524
- fn2.mockClear()
525
-
526
- renderHook(() =>
527
- useInfiniteQuery(
528
- {
529
- queryKey: infiniteQueryKey,
530
- queryFn: fn1,
531
- getNextPageParam: () => 2,
532
- initialPageParam: 1,
533
- },
534
- qc,
535
- ),
536
- )
537
-
538
- renderHook(() =>
539
- useQuery(
540
- {
541
- queryKey,
542
- queryFn: fn2,
543
- },
544
- qc,
545
- ),
546
- )
547
-
548
- expect(fn1).toHaveBeenCalledTimes(1)
549
- expect(fn2).toHaveBeenCalledTimes(1)
550
- })
551
-
552
- it('root level', () => {
553
- user_utils.reset()
554
-
555
- expect(fn1).toHaveBeenCalledTimes(2)
556
- expect(fn2).toHaveBeenCalledTimes(2)
557
- })
558
-
559
- it('root level with filters', () => {
560
- user_utils.reset({ queryType: 'query' })
561
-
562
- expect(fn1).toHaveBeenCalledTimes(1)
563
- expect(fn2).toHaveBeenCalledTimes(2)
564
- })
565
-
566
- it('procedure level', () => {
567
- user_list_utils.reset()
568
-
569
- expect(fn1).toHaveBeenCalledTimes(2)
570
- expect(fn2).toHaveBeenCalledTimes(2)
571
- })
572
-
573
- it('procedure level with filters', () => {
574
- user_list_utils.reset({ queryType: 'infinite' })
575
-
576
- expect(fn1).toHaveBeenCalledTimes(2)
577
- expect(fn2).toHaveBeenCalledTimes(1)
578
- })
579
-
580
- it('on mismatched procedure level', () => {
581
- user_find_utils.reset()
582
-
583
- expect(fn1).toHaveBeenCalledTimes(1)
584
- expect(fn2).toHaveBeenCalledTimes(1)
585
- })
586
- })
587
-
588
- it('isFetching', () => {
589
- const infiniteQueryKey = [['user', 'list'], { type: 'infinite' }]
590
- const queryKey = [['user', 'list'], { type: 'query' }]
591
-
592
- renderHook(() =>
593
- useInfiniteQuery(
594
- {
595
- queryKey: infiniteQueryKey,
596
- queryFn: async () =>
597
- await new Promise(resolve => setTimeout(resolve, 100)),
598
- getNextPageParam: () => 2,
599
- initialPageParam: 1,
600
- },
601
- qc,
602
- ),
603
- )
604
-
605
- renderHook(() =>
606
- useQuery(
607
- {
608
- queryKey,
609
- queryFn: async () =>
610
- await new Promise(resolve => setTimeout(resolve, 100)),
611
- },
612
- qc,
613
- ),
614
- )
615
-
616
- expect(qc.getQueryState(infiniteQueryKey)?.fetchStatus).toBe('fetching')
617
- expect(qc.getQueryState(queryKey)?.fetchStatus).toBe('fetching')
618
-
619
- expect(user_utils.isFetching()).toBe(2)
620
- expect(user_utils.isFetching({ queryType: 'infinite' })).toBe(1)
621
- expect(user_utils.isFetching({ queryType: 'query' })).toBe(1)
622
- expect(user_list_utils.isFetching()).toBe(2)
623
- expect(user_list_utils.isFetching({ queryType: 'infinite' })).toBe(1)
624
- expect(user_list_utils.isFetching({ queryType: 'query' })).toBe(1)
625
- expect(user_find_utils.isFetching()).toBe(0)
626
- })
627
-
628
- it('isMutating', async () => {
629
- const { result } = renderHook(() =>
630
- useMutation(
631
- {
632
- mutationKey: [['user', 'create']],
633
- mutationFn: () => new Promise(resolve => setTimeout(resolve, 100)),
634
- },
635
- qc,
636
- ),
637
- )
638
-
639
- expect(user_utils.isMutating()).toBe(0)
640
-
641
- result.current.mutate()
642
-
643
- expect(user_utils.isMutating()).toBe(1)
644
- expect(user_create_utils.isMutating()).toBe(1)
645
- expect(user_list_utils.isMutating()).toBe(0)
646
- expect(user_find_utils.isMutating()).toBe(0)
647
- })
648
-
649
- describe('getQueryDefaults', () => {
650
- it('on router level', () => {
651
- const fn = vi.fn()
652
-
653
- qc.setQueryDefaults([['user'], { type: 'query' }], {
654
- queryFn: fn,
655
- })
656
-
657
- expect(user_utils.getQueryDefaults()?.queryFn).toBe(fn)
658
- expect(user_find_utils.getQueryDefaults()?.queryFn).toBe(fn)
659
- expect(user_list_utils.getQueryDefaults()?.queryFn).toBe(fn)
660
- })
661
-
662
- it('on procedure level', () => {
663
- const fn = vi.fn()
664
-
665
- qc.setQueryDefaults([['user', 'list'], { type: 'query' }], {
666
- queryFn: fn,
667
- })
668
-
669
- expect(user_utils.getQueryDefaults()?.queryFn).toBe(undefined)
670
- expect(user_find_utils.getQueryDefaults()?.queryFn).toBe(undefined)
671
- expect(user_list_utils.getQueryDefaults()?.queryFn).toBe(fn)
672
- })
673
- })
674
-
675
- describe('getInfiniteQueryDefaults', () => {
676
- it('on router level', () => {
677
- const fn = vi.fn()
678
-
679
- qc.setQueryDefaults([['user'], { type: 'infinite' }], {
680
- queryFn: fn,
681
- })
682
-
683
- expect(user_utils.getInfiniteQueryDefaults()?.queryFn).toBe(fn)
684
- expect(user_find_utils.getInfiniteQueryDefaults()?.queryFn).toBe(fn)
685
- expect(user_list_utils.getInfiniteQueryDefaults()?.queryFn).toBe(fn)
686
- })
687
-
688
- it('on procedure level', () => {
689
- const fn = vi.fn()
690
-
691
- qc.setQueryDefaults([['user', 'list'], { type: 'infinite' }], {
692
- queryFn: fn,
693
- })
694
-
695
- expect(user_utils.getInfiniteQueryDefaults()?.queryFn).toBe(undefined)
696
- expect(user_find_utils.getInfiniteQueryDefaults()?.queryFn).toBe(undefined)
697
- expect(user_list_utils.getInfiniteQueryDefaults()?.queryFn).toBe(fn)
698
- })
699
- })
700
-
701
- describe('setQueryDefaults', () => {
702
- it('on router level', () => {
703
- const fn = vi.fn()
704
-
705
- user_utils.setQueryDefaults({
706
- queryFn: fn,
707
- })
708
-
709
- expect(qc.getQueryDefaults([['user'], { type: 'query' }])?.queryFn).toBe(fn)
710
- expect(
711
- qc.getQueryDefaults([['user', 'find'], { type: 'query' }])?.queryFn,
712
- ).toBe(fn)
713
- expect(
714
- qc.getQueryDefaults([['user', 'find'], { type: 'infinite' }])?.queryFn,
715
- ).toBe(undefined)
716
- })
717
-
718
- it('on procedure level', () => {
719
- const fn = vi.fn()
720
-
721
- user_list_utils.setQueryDefaults({
722
- queryFn: fn,
723
- })
724
-
725
- expect(qc.getQueryDefaults([['user'], { type: 'query' }])?.queryFn).toBe(
726
- undefined,
727
- )
728
- expect(
729
- qc.getQueryDefaults([['user', 'list'], { type: 'query' }])?.queryFn,
730
- ).toBe(fn)
731
- })
732
- })
733
-
734
- describe('setInfiniteQueryDefaults', () => {
735
- it('on router level', () => {
736
- const fn = vi.fn()
737
-
738
- user_utils.setInfiniteQueryDefaults({
739
- queryFn: fn,
740
- })
741
-
742
- expect(qc.getQueryDefaults([['user'], { type: 'infinite' }])?.queryFn).toBe(
743
- fn,
744
- )
745
- expect(
746
- qc.getQueryDefaults([['user', 'find'], { type: 'infinite' }])?.queryFn,
747
- ).toBe(fn)
748
- expect(
749
- qc.getQueryDefaults([['user', 'find'], { type: 'query' }])?.queryFn,
750
- ).toBe(undefined)
751
- })
752
-
753
- it('on procedure level', () => {
754
- const fn = vi.fn()
755
-
756
- user_list_utils.setInfiniteQueryDefaults({
757
- queryFn: fn,
758
- })
759
-
760
- expect(qc.getQueryDefaults([['user'], { type: 'infinite' }])?.queryFn).toBe(
761
- undefined,
762
- )
763
- expect(
764
- qc.getQueryDefaults([['user', 'list'], { type: 'infinite' }])?.queryFn,
765
- ).toBe(fn)
766
- })
767
- })
768
-
769
- describe('getMutationDefaults', () => {
770
- it('on router level', () => {
771
- const fn = vi.fn()
772
-
773
- qc.setMutationDefaults([['user']], {
774
- mutationFn: fn,
775
- })
776
-
777
- expect(user_utils.getMutationDefaults()?.mutationFn).toBe(fn)
778
- expect(user_find_utils.getMutationDefaults()?.mutationFn).toBe(fn)
779
- expect(user_list_utils.getMutationDefaults()?.mutationFn).toBe(fn)
780
- })
781
-
782
- it('on procedure level', () => {
783
- const fn = vi.fn()
784
-
785
- qc.setMutationDefaults([['user', 'create']], {
786
- mutationFn: fn,
787
- })
788
-
789
- expect(user_utils.getMutationDefaults()?.mutationFn).toBe(undefined)
790
- expect(user_find_utils.getMutationDefaults()?.mutationFn).toBe(undefined)
791
- expect(user_create_utils.getMutationDefaults()?.mutationFn).toBe(fn)
792
- })
793
- })
794
-
795
- describe('setMutationDefaults', () => {
796
- it('on router level', () => {
797
- const fn = vi.fn()
798
-
799
- user_utils.setMutationDefaults({
800
- mutationFn: fn,
801
- })
802
-
803
- expect(qc.getMutationDefaults([['user']])?.mutationFn).toBe(fn)
804
- expect(qc.getMutationDefaults([['user', 'create']])?.mutationFn).toBe(fn)
805
- expect(qc.getMutationDefaults([['ping']])?.mutationFn).toBe(undefined)
806
- })
807
-
808
- it('on procedure level', () => {
809
- const fn = vi.fn()
810
-
811
- user_create_utils.setMutationDefaults({
812
- mutationFn: fn,
813
- })
814
-
815
- expect(qc.getMutationDefaults([['user']])?.mutationFn).toBe(undefined)
816
- expect(qc.getMutationDefaults([['user', 'create']])?.mutationFn).toBe(fn)
817
- })
818
- })