@tanstack/solid-query 5.14.7 → 5.15.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.
- package/package.json +3 -3
- package/src/__tests__/QueryClientProvider.test.tsx +8 -8
- package/src/__tests__/createInfiniteQuery.test.tsx +79 -77
- package/src/__tests__/createMutation.test.tsx +94 -94
- package/src/__tests__/createQueries.test.tsx +6 -5
- package/src/__tests__/createQuery.test.tsx +311 -303
- package/src/__tests__/suspense.test.tsx +81 -81
- package/src/__tests__/transition.test.tsx +6 -6
- package/src/__tests__/useIsFetching.test.tsx +16 -16
- package/src/__tests__/useIsMutating.test.tsx +8 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it, vi } from 'vitest'
|
|
2
|
-
import { fireEvent, render,
|
|
2
|
+
import { fireEvent, render, waitFor } from '@solidjs/testing-library'
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
5
|
ErrorBoundary,
|
|
@@ -63,7 +63,7 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
63
63
|
)
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
render(() => (
|
|
66
|
+
const rendered = render(() => (
|
|
67
67
|
<QueryClientProvider client={queryClient}>
|
|
68
68
|
<Suspense fallback="loading">
|
|
69
69
|
<Page />
|
|
@@ -71,10 +71,10 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
71
71
|
</QueryClientProvider>
|
|
72
72
|
))
|
|
73
73
|
|
|
74
|
-
await waitFor(() =>
|
|
75
|
-
fireEvent.click(
|
|
74
|
+
await waitFor(() => rendered.getByText('data: 1'))
|
|
75
|
+
fireEvent.click(rendered.getByLabelText('toggle'))
|
|
76
76
|
|
|
77
|
-
await waitFor(() =>
|
|
77
|
+
await waitFor(() => rendered.getByText('data: 2'))
|
|
78
78
|
|
|
79
79
|
expect(renders).toBe(4)
|
|
80
80
|
expect(states.length).toBe(4)
|
|
@@ -111,7 +111,7 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
111
111
|
)
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
-
render(() => (
|
|
114
|
+
const rendered = render(() => (
|
|
115
115
|
<QueryClientProvider client={queryClient}>
|
|
116
116
|
<Suspense fallback="loading">
|
|
117
117
|
<Page />
|
|
@@ -119,7 +119,7 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
119
119
|
</QueryClientProvider>
|
|
120
120
|
))
|
|
121
121
|
|
|
122
|
-
await waitFor(() =>
|
|
122
|
+
await waitFor(() => rendered.getByText('data: 1'))
|
|
123
123
|
|
|
124
124
|
// TODO(lukemurray): in react this is 1 in solid this is 2 because suspense
|
|
125
125
|
// occurs on read.
|
|
@@ -129,8 +129,8 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
129
129
|
status: 'success',
|
|
130
130
|
})
|
|
131
131
|
|
|
132
|
-
fireEvent.click(
|
|
133
|
-
await waitFor(() =>
|
|
132
|
+
fireEvent.click(rendered.getByText('next'))
|
|
133
|
+
await waitFor(() => rendered.getByText('data: 2'))
|
|
134
134
|
|
|
135
135
|
// TODO(lukemurray): in react this is 2 and in solid it is 4
|
|
136
136
|
expect(states.length).toBe(4)
|
|
@@ -155,7 +155,7 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
155
155
|
return <>rendered</>
|
|
156
156
|
}
|
|
157
157
|
|
|
158
|
-
render(() => (
|
|
158
|
+
const rendered = render(() => (
|
|
159
159
|
<QueryClientProvider client={queryClient}>
|
|
160
160
|
<Suspense fallback="loading">
|
|
161
161
|
<Page />
|
|
@@ -163,7 +163,7 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
163
163
|
</QueryClientProvider>
|
|
164
164
|
))
|
|
165
165
|
|
|
166
|
-
await waitFor(() =>
|
|
166
|
+
await waitFor(() => rendered.getByText('rendered'))
|
|
167
167
|
|
|
168
168
|
expect(queryFn).toHaveBeenCalledTimes(1)
|
|
169
169
|
})
|
|
@@ -197,23 +197,23 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
197
197
|
)
|
|
198
198
|
}
|
|
199
199
|
|
|
200
|
-
render(() => (
|
|
200
|
+
const rendered = render(() => (
|
|
201
201
|
<QueryClientProvider client={queryClient}>
|
|
202
202
|
<App />
|
|
203
203
|
</QueryClientProvider>
|
|
204
204
|
))
|
|
205
205
|
|
|
206
|
-
expect(
|
|
206
|
+
expect(rendered.queryByText('rendered')).toBeNull()
|
|
207
207
|
expect(queryCache.find({ queryKey: key })).toBeFalsy()
|
|
208
208
|
|
|
209
|
-
fireEvent.click(
|
|
210
|
-
await waitFor(() =>
|
|
209
|
+
fireEvent.click(rendered.getByLabelText('toggle'))
|
|
210
|
+
await waitFor(() => rendered.getByText('rendered'))
|
|
211
211
|
|
|
212
212
|
expect(queryCache.find({ queryKey: key })?.getObserversCount()).toBe(1)
|
|
213
213
|
|
|
214
|
-
fireEvent.click(
|
|
214
|
+
fireEvent.click(rendered.getByLabelText('toggle'))
|
|
215
215
|
|
|
216
|
-
expect(
|
|
216
|
+
expect(rendered.queryByText('rendered')).toBeNull()
|
|
217
217
|
expect(queryCache.find({ queryKey: key })?.getObserversCount()).toBe(0)
|
|
218
218
|
})
|
|
219
219
|
|
|
@@ -246,7 +246,7 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
246
246
|
)
|
|
247
247
|
}
|
|
248
248
|
|
|
249
|
-
render(() => (
|
|
249
|
+
const rendered = render(() => (
|
|
250
250
|
<QueryClientProvider client={queryClient}>
|
|
251
251
|
<ErrorBoundary
|
|
252
252
|
fallback={(_err, resetSolid) => (
|
|
@@ -270,15 +270,15 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
270
270
|
</QueryClientProvider>
|
|
271
271
|
))
|
|
272
272
|
|
|
273
|
-
await waitFor(() =>
|
|
273
|
+
await waitFor(() => rendered.getByText('Loading...'))
|
|
274
274
|
|
|
275
|
-
await waitFor(() =>
|
|
275
|
+
await waitFor(() => rendered.getByText('error boundary'))
|
|
276
276
|
|
|
277
|
-
await waitFor(() =>
|
|
277
|
+
await waitFor(() => rendered.getByText('retry'))
|
|
278
278
|
|
|
279
|
-
fireEvent.click(
|
|
279
|
+
fireEvent.click(rendered.getByText('retry'))
|
|
280
280
|
|
|
281
|
-
await waitFor(() =>
|
|
281
|
+
await waitFor(() => rendered.getByText('rendered'))
|
|
282
282
|
})
|
|
283
283
|
|
|
284
284
|
it('should retry fetch if the reset error boundary has been reset', async () => {
|
|
@@ -309,7 +309,7 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
309
309
|
)
|
|
310
310
|
}
|
|
311
311
|
|
|
312
|
-
render(() => (
|
|
312
|
+
const rendered = render(() => (
|
|
313
313
|
<QueryClientProvider client={queryClient}>
|
|
314
314
|
<ErrorBoundary
|
|
315
315
|
fallback={(_err, resetSolid) => (
|
|
@@ -332,15 +332,15 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
332
332
|
</QueryClientProvider>
|
|
333
333
|
))
|
|
334
334
|
|
|
335
|
-
await waitFor(() =>
|
|
336
|
-
await waitFor(() =>
|
|
337
|
-
await waitFor(() =>
|
|
338
|
-
fireEvent.click(
|
|
339
|
-
await waitFor(() =>
|
|
340
|
-
await waitFor(() =>
|
|
335
|
+
await waitFor(() => rendered.getByText('Loading...'))
|
|
336
|
+
await waitFor(() => rendered.getByText('error boundary'))
|
|
337
|
+
await waitFor(() => rendered.getByText('retry'))
|
|
338
|
+
fireEvent.click(rendered.getByText('retry'))
|
|
339
|
+
await waitFor(() => rendered.getByText('error boundary'))
|
|
340
|
+
await waitFor(() => rendered.getByText('retry'))
|
|
341
341
|
succeed = true
|
|
342
|
-
fireEvent.click(
|
|
343
|
-
await waitFor(() =>
|
|
342
|
+
fireEvent.click(rendered.getByText('retry'))
|
|
343
|
+
await waitFor(() => rendered.getByText('rendered'))
|
|
344
344
|
})
|
|
345
345
|
|
|
346
346
|
it('should refetch when re-mounting', async () => {
|
|
@@ -384,22 +384,22 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
384
384
|
)
|
|
385
385
|
}
|
|
386
386
|
|
|
387
|
-
render(() => (
|
|
387
|
+
const rendered = render(() => (
|
|
388
388
|
<QueryClientProvider client={queryClient}>
|
|
389
389
|
<Page />
|
|
390
390
|
</QueryClientProvider>
|
|
391
391
|
))
|
|
392
392
|
|
|
393
|
-
await waitFor(() =>
|
|
394
|
-
await waitFor(() =>
|
|
395
|
-
await waitFor(() =>
|
|
396
|
-
await waitFor(() =>
|
|
397
|
-
fireEvent.click(
|
|
398
|
-
await waitFor(() =>
|
|
399
|
-
fireEvent.click(
|
|
400
|
-
await waitFor(() =>
|
|
401
|
-
await waitFor(() =>
|
|
402
|
-
await waitFor(() =>
|
|
393
|
+
await waitFor(() => rendered.getByText('Loading...'))
|
|
394
|
+
await waitFor(() => rendered.getByText('data: 1'))
|
|
395
|
+
await waitFor(() => rendered.getByText('fetching: false'))
|
|
396
|
+
await waitFor(() => rendered.getByText('hide'))
|
|
397
|
+
fireEvent.click(rendered.getByText('hide'))
|
|
398
|
+
await waitFor(() => rendered.getByText('show'))
|
|
399
|
+
fireEvent.click(rendered.getByText('show'))
|
|
400
|
+
await waitFor(() => rendered.getByText('fetching: true'))
|
|
401
|
+
await waitFor(() => rendered.getByText('data: 2'))
|
|
402
|
+
await waitFor(() => rendered.getByText('fetching: false'))
|
|
403
403
|
})
|
|
404
404
|
|
|
405
405
|
it('should suspend when switching to a new query', async () => {
|
|
@@ -437,17 +437,17 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
437
437
|
)
|
|
438
438
|
}
|
|
439
439
|
|
|
440
|
-
render(() => (
|
|
440
|
+
const rendered = render(() => (
|
|
441
441
|
<QueryClientProvider client={queryClient}>
|
|
442
442
|
<Page />
|
|
443
443
|
</QueryClientProvider>
|
|
444
444
|
))
|
|
445
445
|
|
|
446
|
-
await waitFor(() =>
|
|
447
|
-
await waitFor(() =>
|
|
448
|
-
fireEvent.click(
|
|
449
|
-
await waitFor(() =>
|
|
450
|
-
await waitFor(() =>
|
|
446
|
+
await waitFor(() => rendered.getByText('Loading...'))
|
|
447
|
+
await waitFor(() => rendered.getByText(`data: ${key1}`))
|
|
448
|
+
fireEvent.click(rendered.getByText('switch'))
|
|
449
|
+
await waitFor(() => rendered.getByText('Loading...'))
|
|
450
|
+
await waitFor(() => rendered.getByText(`data: ${key2}`))
|
|
451
451
|
})
|
|
452
452
|
|
|
453
453
|
it('should throw errors to the error boundary by default', async () => {
|
|
@@ -493,14 +493,14 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
493
493
|
)
|
|
494
494
|
}
|
|
495
495
|
|
|
496
|
-
render(() => (
|
|
496
|
+
const rendered = render(() => (
|
|
497
497
|
<QueryClientProvider client={queryClient}>
|
|
498
498
|
<App />
|
|
499
499
|
</QueryClientProvider>
|
|
500
500
|
))
|
|
501
501
|
|
|
502
|
-
await waitFor(() =>
|
|
503
|
-
await waitFor(() =>
|
|
502
|
+
await waitFor(() => rendered.getByText('Loading...'))
|
|
503
|
+
await waitFor(() => rendered.getByText('error boundary'))
|
|
504
504
|
|
|
505
505
|
consoleMock.mockRestore()
|
|
506
506
|
})
|
|
@@ -544,14 +544,14 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
544
544
|
)
|
|
545
545
|
}
|
|
546
546
|
|
|
547
|
-
render(() => (
|
|
547
|
+
const rendered = render(() => (
|
|
548
548
|
<QueryClientProvider client={queryClient}>
|
|
549
549
|
<App />
|
|
550
550
|
</QueryClientProvider>
|
|
551
551
|
))
|
|
552
552
|
|
|
553
|
-
await waitFor(() =>
|
|
554
|
-
await waitFor(() =>
|
|
553
|
+
await waitFor(() => rendered.getByText('Loading...'))
|
|
554
|
+
await waitFor(() => rendered.getByText('rendered'))
|
|
555
555
|
})
|
|
556
556
|
|
|
557
557
|
it('should throw errors to the error boundary when a throwOnError function returns true', async () => {
|
|
@@ -597,14 +597,14 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
597
597
|
)
|
|
598
598
|
}
|
|
599
599
|
|
|
600
|
-
render(() => (
|
|
600
|
+
const rendered = render(() => (
|
|
601
601
|
<QueryClientProvider client={queryClient}>
|
|
602
602
|
<App />
|
|
603
603
|
</QueryClientProvider>
|
|
604
604
|
))
|
|
605
605
|
|
|
606
|
-
await waitFor(() =>
|
|
607
|
-
await waitFor(() =>
|
|
606
|
+
await waitFor(() => rendered.getByText('Loading...'))
|
|
607
|
+
await waitFor(() => rendered.getByText('error boundary'))
|
|
608
608
|
|
|
609
609
|
consoleMock.mockRestore()
|
|
610
610
|
})
|
|
@@ -650,14 +650,14 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
650
650
|
)
|
|
651
651
|
}
|
|
652
652
|
|
|
653
|
-
render(() => (
|
|
653
|
+
const rendered = render(() => (
|
|
654
654
|
<QueryClientProvider client={queryClient}>
|
|
655
655
|
<App />
|
|
656
656
|
</QueryClientProvider>
|
|
657
657
|
))
|
|
658
658
|
|
|
659
|
-
await waitFor(() =>
|
|
660
|
-
await waitFor(() =>
|
|
659
|
+
await waitFor(() => rendered.getByText('Loading...'))
|
|
660
|
+
await waitFor(() => rendered.getByText('rendered'))
|
|
661
661
|
})
|
|
662
662
|
|
|
663
663
|
it('should not call the queryFn when not enabled', async () => {
|
|
@@ -686,7 +686,7 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
686
686
|
)
|
|
687
687
|
}
|
|
688
688
|
|
|
689
|
-
render(() => (
|
|
689
|
+
const rendered = render(() => (
|
|
690
690
|
<QueryClientProvider client={queryClient}>
|
|
691
691
|
<Suspense fallback="loading">
|
|
692
692
|
<Page />
|
|
@@ -696,10 +696,10 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
696
696
|
|
|
697
697
|
expect(queryFn).toHaveBeenCalledTimes(0)
|
|
698
698
|
await sleep(5)
|
|
699
|
-
fireEvent.click(
|
|
699
|
+
fireEvent.click(rendered.getByRole('button', { name: /fire/i }))
|
|
700
700
|
|
|
701
701
|
await waitFor(() => {
|
|
702
|
-
expect(
|
|
702
|
+
expect(rendered.getByRole('heading').textContent).toBe('23')
|
|
703
703
|
})
|
|
704
704
|
|
|
705
705
|
expect(queryFn).toHaveBeenCalledTimes(1)
|
|
@@ -755,23 +755,23 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
755
755
|
)
|
|
756
756
|
}
|
|
757
757
|
|
|
758
|
-
render(() => (
|
|
758
|
+
const rendered = render(() => (
|
|
759
759
|
<QueryClientProvider client={queryClient}>
|
|
760
760
|
<App />
|
|
761
761
|
</QueryClientProvider>
|
|
762
762
|
))
|
|
763
763
|
|
|
764
764
|
// render suspense fallback (Loading...)
|
|
765
|
-
await waitFor(() =>
|
|
765
|
+
await waitFor(() => rendered.getByText('Loading...'))
|
|
766
766
|
// resolve promise -> render Page (rendered)
|
|
767
|
-
await waitFor(() =>
|
|
767
|
+
await waitFor(() => rendered.getByText('rendered'))
|
|
768
768
|
|
|
769
769
|
// change query key
|
|
770
770
|
succeed = false
|
|
771
771
|
// reset query -> and throw error
|
|
772
|
-
fireEvent.click(
|
|
772
|
+
fireEvent.click(rendered.getByLabelText('fail'))
|
|
773
773
|
// render error boundary fallback (error boundary)
|
|
774
|
-
await waitFor(() =>
|
|
774
|
+
await waitFor(() => rendered.getByText('error boundary'))
|
|
775
775
|
|
|
776
776
|
consoleMock.mockRestore()
|
|
777
777
|
})
|
|
@@ -819,23 +819,23 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
819
819
|
)
|
|
820
820
|
}
|
|
821
821
|
|
|
822
|
-
render(() => (
|
|
822
|
+
const rendered = render(() => (
|
|
823
823
|
<QueryClientProvider client={queryClient}>
|
|
824
824
|
<App />
|
|
825
825
|
</QueryClientProvider>
|
|
826
826
|
))
|
|
827
827
|
|
|
828
828
|
// render suspense fallback (Loading...)
|
|
829
|
-
await waitFor(() =>
|
|
829
|
+
await waitFor(() => rendered.getByText('Loading...'))
|
|
830
830
|
// resolve promise -> render Page (rendered)
|
|
831
|
-
await waitFor(() =>
|
|
831
|
+
await waitFor(() => rendered.getByText('rendered'))
|
|
832
832
|
|
|
833
833
|
// change promise result to error
|
|
834
834
|
succeed = false
|
|
835
835
|
// change query key
|
|
836
|
-
fireEvent.click(
|
|
836
|
+
fireEvent.click(rendered.getByLabelText('fail'))
|
|
837
837
|
// render error boundary fallback (error boundary)
|
|
838
|
-
await waitFor(() =>
|
|
838
|
+
await waitFor(() => rendered.getByText('error boundary'))
|
|
839
839
|
|
|
840
840
|
consoleMock.mockRestore()
|
|
841
841
|
})
|
|
@@ -885,23 +885,23 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
885
885
|
)
|
|
886
886
|
}
|
|
887
887
|
|
|
888
|
-
render(() => (
|
|
888
|
+
const rendered = render(() => (
|
|
889
889
|
<QueryClientProvider client={queryClient}>
|
|
890
890
|
<App />
|
|
891
891
|
</QueryClientProvider>
|
|
892
892
|
))
|
|
893
893
|
|
|
894
894
|
// render empty data with 'rendered' when enabled is false
|
|
895
|
-
await waitFor(() =>
|
|
895
|
+
await waitFor(() => rendered.getByText('rendered'))
|
|
896
896
|
|
|
897
897
|
// change enabled to true
|
|
898
|
-
fireEvent.click(
|
|
898
|
+
fireEvent.click(rendered.getByLabelText('fail'))
|
|
899
899
|
|
|
900
900
|
// render pending fallback
|
|
901
|
-
await waitFor(() =>
|
|
901
|
+
await waitFor(() => rendered.getByText('Loading...'))
|
|
902
902
|
|
|
903
903
|
// render error boundary fallback (error boundary)
|
|
904
|
-
await waitFor(() =>
|
|
904
|
+
await waitFor(() => rendered.getByText('error boundary'))
|
|
905
905
|
|
|
906
906
|
consoleMock.mockRestore()
|
|
907
907
|
})
|
|
@@ -937,7 +937,7 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
937
937
|
)
|
|
938
938
|
}
|
|
939
939
|
|
|
940
|
-
render(() => (
|
|
940
|
+
const rendered = render(() => (
|
|
941
941
|
<QueryClientProvider client={queryClient}>
|
|
942
942
|
<Suspense fallback="loading">
|
|
943
943
|
<Page />
|
|
@@ -953,6 +953,6 @@ describe("useQuery's in Suspense mode", () => {
|
|
|
953
953
|
)
|
|
954
954
|
|
|
955
955
|
expect(renders).toBe(2)
|
|
956
|
-
expect(
|
|
956
|
+
expect(rendered.queryByText('rendered')).not.toBeNull()
|
|
957
957
|
})
|
|
958
958
|
})
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, it } from 'vitest'
|
|
2
|
-
import { fireEvent, render,
|
|
2
|
+
import { fireEvent, render, waitFor } from '@solidjs/testing-library'
|
|
3
3
|
import { Show, Suspense, createSignal, startTransition } from 'solid-js'
|
|
4
4
|
import { QueryCache, QueryClientProvider, createQuery } from '..'
|
|
5
5
|
import { createQueryClient, queryKey, sleep } from './utils'
|
|
@@ -44,17 +44,17 @@ describe("createQuery's in Suspense mode with transitions", () => {
|
|
|
44
44
|
)
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
render(() => (
|
|
47
|
+
const rendered = render(() => (
|
|
48
48
|
<QueryClientProvider client={queryClient}>
|
|
49
49
|
<Page />
|
|
50
50
|
</QueryClientProvider>
|
|
51
51
|
))
|
|
52
52
|
|
|
53
|
-
await waitFor(() =>
|
|
54
|
-
fireEvent.click(
|
|
53
|
+
await waitFor(() => rendered.getByText('Show'))
|
|
54
|
+
fireEvent.click(rendered.getByLabelText('toggle'))
|
|
55
55
|
|
|
56
|
-
await waitFor(() =>
|
|
56
|
+
await waitFor(() => rendered.getByText('Message'))
|
|
57
57
|
// verify that the button also updated. See https://github.com/solidjs/solid/issues/1249
|
|
58
|
-
await waitFor(() =>
|
|
58
|
+
await waitFor(() => rendered.getByText('Hide'))
|
|
59
59
|
})
|
|
60
60
|
})
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest'
|
|
2
|
-
import { fireEvent, render,
|
|
2
|
+
import { fireEvent, render, waitFor } from '@solidjs/testing-library'
|
|
3
3
|
import { Show, createEffect, createRenderEffect, createSignal } from 'solid-js'
|
|
4
4
|
import { QueryCache, QueryClientProvider, createQuery, useIsFetching } from '..'
|
|
5
5
|
import { createQueryClient, queryKey, setActTimeout, sleep } from './utils'
|
|
@@ -40,16 +40,16 @@ describe('useIsFetching', () => {
|
|
|
40
40
|
)
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
render(() => (
|
|
43
|
+
const rendered = render(() => (
|
|
44
44
|
<QueryClientProvider client={queryClient}>
|
|
45
45
|
<Page />
|
|
46
46
|
</QueryClientProvider>
|
|
47
47
|
))
|
|
48
48
|
|
|
49
|
-
await
|
|
50
|
-
fireEvent.click(
|
|
51
|
-
await
|
|
52
|
-
await
|
|
49
|
+
await rendered.findByText('isFetching: 0')
|
|
50
|
+
fireEvent.click(rendered.getByRole('button', { name: /setReady/i }))
|
|
51
|
+
await rendered.findByText('isFetching: 1')
|
|
52
|
+
await rendered.findByText('isFetching: 0')
|
|
53
53
|
})
|
|
54
54
|
|
|
55
55
|
it('should not update state while rendering', async () => {
|
|
@@ -173,16 +173,16 @@ describe('useIsFetching', () => {
|
|
|
173
173
|
)
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
-
render(() => (
|
|
176
|
+
const rendered = render(() => (
|
|
177
177
|
<QueryClientProvider client={queryClient}>
|
|
178
178
|
<Page />
|
|
179
179
|
</QueryClientProvider>
|
|
180
180
|
))
|
|
181
181
|
|
|
182
|
-
await
|
|
183
|
-
fireEvent.click(
|
|
184
|
-
await
|
|
185
|
-
await
|
|
182
|
+
await rendered.findByText('isFetching: 0')
|
|
183
|
+
fireEvent.click(rendered.getByRole('button', { name: /setStarted/i }))
|
|
184
|
+
await rendered.findByText('isFetching: 1')
|
|
185
|
+
await rendered.findByText('isFetching: 0')
|
|
186
186
|
// at no point should we have isFetching: 2
|
|
187
187
|
expect(isFetchings).toEqual(expect.not.arrayContaining([2]))
|
|
188
188
|
})
|
|
@@ -209,14 +209,14 @@ describe('useIsFetching', () => {
|
|
|
209
209
|
)
|
|
210
210
|
}
|
|
211
211
|
|
|
212
|
-
render(() => (
|
|
212
|
+
const rendered = render(() => (
|
|
213
213
|
<QueryClientProvider client={queryClient}>
|
|
214
214
|
<Page />
|
|
215
215
|
</QueryClientProvider>
|
|
216
216
|
))
|
|
217
217
|
|
|
218
|
-
await
|
|
219
|
-
await
|
|
218
|
+
await rendered.findByText('isFetching: 1')
|
|
219
|
+
await rendered.findByText('isFetching: 0')
|
|
220
220
|
})
|
|
221
221
|
|
|
222
222
|
it('should use provided custom queryClient', async () => {
|
|
@@ -244,8 +244,8 @@ describe('useIsFetching', () => {
|
|
|
244
244
|
)
|
|
245
245
|
}
|
|
246
246
|
|
|
247
|
-
render(() => <Page></Page>)
|
|
247
|
+
const rendered = render(() => <Page></Page>)
|
|
248
248
|
|
|
249
|
-
await
|
|
249
|
+
await rendered.findByText('isFetching: 1')
|
|
250
250
|
})
|
|
251
251
|
})
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it, vi } from 'vitest'
|
|
2
|
-
import { fireEvent, render,
|
|
2
|
+
import { fireEvent, render, waitFor } from '@solidjs/testing-library'
|
|
3
3
|
import { Show, createEffect, createRenderEffect, createSignal } from 'solid-js'
|
|
4
4
|
import * as QueryCore from '@tanstack/query-core'
|
|
5
5
|
import { QueryClientProvider, createMutation, useIsMutating } from '..'
|
|
@@ -157,6 +157,7 @@ describe('useIsMutating', () => {
|
|
|
157
157
|
|
|
158
158
|
it('should use provided custom queryClient', async () => {
|
|
159
159
|
const queryClient = createQueryClient()
|
|
160
|
+
|
|
160
161
|
function Page() {
|
|
161
162
|
const isMutating = useIsMutating(undefined, () => queryClient)
|
|
162
163
|
const { mutate } = createMutation(
|
|
@@ -178,8 +179,10 @@ describe('useIsMutating', () => {
|
|
|
178
179
|
</div>
|
|
179
180
|
)
|
|
180
181
|
}
|
|
181
|
-
|
|
182
|
-
|
|
182
|
+
|
|
183
|
+
const rendered = render(() => <Page></Page>)
|
|
184
|
+
|
|
185
|
+
await waitFor(() => rendered.findByText('mutating: 1'))
|
|
183
186
|
})
|
|
184
187
|
|
|
185
188
|
it('should not change state if unmounted', async () => {
|
|
@@ -229,12 +232,12 @@ describe('useIsMutating', () => {
|
|
|
229
232
|
)
|
|
230
233
|
}
|
|
231
234
|
|
|
232
|
-
render(() => (
|
|
235
|
+
const rendered = render(() => (
|
|
233
236
|
<QueryClientProvider client={queryClient}>
|
|
234
237
|
<Page />
|
|
235
238
|
</QueryClientProvider>
|
|
236
239
|
))
|
|
237
|
-
fireEvent.click(
|
|
240
|
+
fireEvent.click(rendered.getByText('unmount'))
|
|
238
241
|
|
|
239
242
|
// Should not display the console error
|
|
240
243
|
// "Warning: Can't perform a React state update on an unmounted component"
|