@tanstack/solid-query 5.14.2 → 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 +4 -4
- 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
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
createSignal,
|
|
10
10
|
on,
|
|
11
11
|
} from 'solid-js'
|
|
12
|
-
import { fireEvent, render,
|
|
12
|
+
import { fireEvent, render, waitFor } from '@solidjs/testing-library'
|
|
13
13
|
import { reconcile } from 'solid-js/store'
|
|
14
14
|
import {
|
|
15
15
|
QueryCache,
|
|
@@ -212,15 +212,15 @@ describe('createQuery', () => {
|
|
|
212
212
|
)
|
|
213
213
|
}
|
|
214
214
|
|
|
215
|
-
render(() => (
|
|
215
|
+
const rendered = render(() => (
|
|
216
216
|
<QueryClientProvider client={queryClient}>
|
|
217
217
|
<Page />
|
|
218
218
|
</QueryClientProvider>
|
|
219
219
|
))
|
|
220
220
|
|
|
221
|
-
|
|
221
|
+
rendered.getByText('default')
|
|
222
222
|
|
|
223
|
-
await waitFor(() =>
|
|
223
|
+
await waitFor(() => rendered.getByText('test'))
|
|
224
224
|
})
|
|
225
225
|
|
|
226
226
|
it('should return the correct states for a successful query', async () => {
|
|
@@ -263,13 +263,13 @@ describe('createQuery', () => {
|
|
|
263
263
|
)
|
|
264
264
|
}
|
|
265
265
|
|
|
266
|
-
render(() => (
|
|
266
|
+
const rendered = render(() => (
|
|
267
267
|
<QueryClientProvider client={queryClient}>
|
|
268
268
|
<Page />
|
|
269
269
|
</QueryClientProvider>
|
|
270
270
|
))
|
|
271
271
|
|
|
272
|
-
await waitFor(() =>
|
|
272
|
+
await waitFor(() => rendered.getByText('test'))
|
|
273
273
|
|
|
274
274
|
expect(states.length).toEqual(2)
|
|
275
275
|
|
|
@@ -354,13 +354,13 @@ describe('createQuery', () => {
|
|
|
354
354
|
)
|
|
355
355
|
}
|
|
356
356
|
|
|
357
|
-
render(() => (
|
|
357
|
+
const rendered = render(() => (
|
|
358
358
|
<QueryClientProvider client={queryClient}>
|
|
359
359
|
<Page />
|
|
360
360
|
</QueryClientProvider>
|
|
361
361
|
))
|
|
362
362
|
|
|
363
|
-
await waitFor(() =>
|
|
363
|
+
await waitFor(() => rendered.getByText('Status: error'))
|
|
364
364
|
|
|
365
365
|
expect(states[0]).toEqual({
|
|
366
366
|
data: undefined,
|
|
@@ -669,17 +669,17 @@ describe('createQuery', () => {
|
|
|
669
669
|
)
|
|
670
670
|
}
|
|
671
671
|
|
|
672
|
-
render(() => (
|
|
672
|
+
const rendered = render(() => (
|
|
673
673
|
<QueryClientProvider client={queryClient}>
|
|
674
674
|
<Page />
|
|
675
675
|
</QueryClientProvider>
|
|
676
676
|
))
|
|
677
677
|
|
|
678
|
-
await
|
|
678
|
+
await rendered.findByText('data: 1')
|
|
679
679
|
|
|
680
|
-
fireEvent.click(
|
|
680
|
+
fireEvent.click(rendered.getByRole('button', { name: /toggle/i }))
|
|
681
681
|
|
|
682
|
-
await
|
|
682
|
+
await rendered.findByText('data: 2')
|
|
683
683
|
|
|
684
684
|
expect(states.length).toBe(4)
|
|
685
685
|
// First load
|
|
@@ -881,13 +881,13 @@ describe('createQuery', () => {
|
|
|
881
881
|
)
|
|
882
882
|
}
|
|
883
883
|
|
|
884
|
-
render(() => (
|
|
884
|
+
const rendered = render(() => (
|
|
885
885
|
<QueryClientProvider client={queryClient}>
|
|
886
886
|
<Page />
|
|
887
887
|
</QueryClientProvider>
|
|
888
888
|
))
|
|
889
889
|
|
|
890
|
-
await waitFor(() =>
|
|
890
|
+
await waitFor(() => rendered.getByText('data: test'))
|
|
891
891
|
|
|
892
892
|
expect(states.length).toBe(2)
|
|
893
893
|
expect(states[0]).toMatchObject({ data: undefined })
|
|
@@ -964,13 +964,13 @@ describe('createQuery', () => {
|
|
|
964
964
|
)
|
|
965
965
|
}
|
|
966
966
|
|
|
967
|
-
render(() => (
|
|
967
|
+
const rendered = render(() => (
|
|
968
968
|
<QueryClientProvider client={queryClient}>
|
|
969
969
|
<Page />
|
|
970
970
|
</QueryClientProvider>
|
|
971
971
|
))
|
|
972
972
|
|
|
973
|
-
await waitFor(() =>
|
|
973
|
+
await waitFor(() => rendered.getByText('test'))
|
|
974
974
|
|
|
975
975
|
expect(states.length).toBe(2)
|
|
976
976
|
expect(states[0]).toMatchObject({ data: undefined })
|
|
@@ -1062,16 +1062,16 @@ describe('createQuery', () => {
|
|
|
1062
1062
|
)
|
|
1063
1063
|
}
|
|
1064
1064
|
|
|
1065
|
-
render(() => (
|
|
1065
|
+
const rendered = render(() => (
|
|
1066
1066
|
<QueryClientProvider client={queryClient}>
|
|
1067
1067
|
<Page />
|
|
1068
1068
|
</QueryClientProvider>
|
|
1069
1069
|
))
|
|
1070
1070
|
|
|
1071
|
-
await waitFor(() =>
|
|
1071
|
+
await waitFor(() => rendered.getByText('data: false'))
|
|
1072
1072
|
await sleep(20)
|
|
1073
|
-
fireEvent.click(
|
|
1074
|
-
await waitFor(() =>
|
|
1073
|
+
fireEvent.click(rendered.getByRole('button', { name: /refetch/i }))
|
|
1074
|
+
await waitFor(() => rendered.getByText('data: true'))
|
|
1075
1075
|
|
|
1076
1076
|
await waitFor(() => expect(states.length).toBe(4))
|
|
1077
1077
|
|
|
@@ -1123,15 +1123,15 @@ describe('createQuery', () => {
|
|
|
1123
1123
|
)
|
|
1124
1124
|
}
|
|
1125
1125
|
|
|
1126
|
-
render(() => (
|
|
1126
|
+
const rendered = render(() => (
|
|
1127
1127
|
<QueryClientProvider client={queryClient}>
|
|
1128
1128
|
<Page />
|
|
1129
1129
|
</QueryClientProvider>
|
|
1130
1130
|
))
|
|
1131
1131
|
|
|
1132
|
-
await waitFor(() =>
|
|
1133
|
-
fireEvent.click(
|
|
1134
|
-
await waitFor(() =>
|
|
1132
|
+
await waitFor(() => rendered.getByText('data: set'))
|
|
1133
|
+
fireEvent.click(rendered.getByRole('button', { name: /refetch/i }))
|
|
1134
|
+
await waitFor(() => rendered.getByText('data: fetched'))
|
|
1135
1135
|
|
|
1136
1136
|
await waitFor(() => expect(results.length).toBe(3))
|
|
1137
1137
|
|
|
@@ -1172,15 +1172,15 @@ describe('createQuery', () => {
|
|
|
1172
1172
|
)
|
|
1173
1173
|
}
|
|
1174
1174
|
|
|
1175
|
-
render(() => (
|
|
1175
|
+
const rendered = render(() => (
|
|
1176
1176
|
<QueryClientProvider client={queryClient}>
|
|
1177
1177
|
<Page />
|
|
1178
1178
|
</QueryClientProvider>
|
|
1179
1179
|
))
|
|
1180
1180
|
|
|
1181
|
-
await waitFor(() =>
|
|
1182
|
-
fireEvent.click(
|
|
1183
|
-
await waitFor(() =>
|
|
1181
|
+
await waitFor(() => rendered.getByText('data: 1'))
|
|
1182
|
+
fireEvent.click(rendered.getByRole('button', { name: /invalidate/i }))
|
|
1183
|
+
await waitFor(() => rendered.getByText('data: 2'))
|
|
1184
1184
|
|
|
1185
1185
|
await waitFor(() => expect(states.length).toBe(4))
|
|
1186
1186
|
|
|
@@ -1462,20 +1462,20 @@ describe('createQuery', () => {
|
|
|
1462
1462
|
)
|
|
1463
1463
|
}
|
|
1464
1464
|
|
|
1465
|
-
render(() => (
|
|
1465
|
+
const rendered = render(() => (
|
|
1466
1466
|
<QueryClientProvider client={queryClient}>
|
|
1467
1467
|
<Page />
|
|
1468
1468
|
</QueryClientProvider>
|
|
1469
1469
|
))
|
|
1470
1470
|
|
|
1471
1471
|
await waitFor(() =>
|
|
1472
|
-
|
|
1472
|
+
rendered.getByText('data: 0, count: 0, isFetching: false'),
|
|
1473
1473
|
)
|
|
1474
1474
|
|
|
1475
|
-
fireEvent.click(
|
|
1475
|
+
fireEvent.click(rendered.getByRole('button', { name: 'inc' }))
|
|
1476
1476
|
|
|
1477
1477
|
await waitFor(() =>
|
|
1478
|
-
|
|
1478
|
+
rendered.getByText('data: 1, count: 1, isFetching: false'),
|
|
1479
1479
|
)
|
|
1480
1480
|
|
|
1481
1481
|
await waitFor(() => expect(states.length).toBe(4))
|
|
@@ -1634,14 +1634,14 @@ describe('createQuery', () => {
|
|
|
1634
1634
|
)
|
|
1635
1635
|
}
|
|
1636
1636
|
|
|
1637
|
-
render(() => (
|
|
1637
|
+
const rendered = render(() => (
|
|
1638
1638
|
<QueryClientProvider client={queryClient}>
|
|
1639
1639
|
<Page />
|
|
1640
1640
|
</QueryClientProvider>
|
|
1641
1641
|
))
|
|
1642
1642
|
|
|
1643
|
-
await waitFor(() =>
|
|
1644
|
-
fireEvent.click(
|
|
1643
|
+
await waitFor(() => rendered.getByText('data: 1'))
|
|
1644
|
+
fireEvent.click(rendered.getByRole('button', { name: /refetch/i }))
|
|
1645
1645
|
|
|
1646
1646
|
await waitFor(() => expect(states.length).toBe(4))
|
|
1647
1647
|
|
|
@@ -1875,16 +1875,16 @@ describe('createQuery', () => {
|
|
|
1875
1875
|
)
|
|
1876
1876
|
}
|
|
1877
1877
|
|
|
1878
|
-
render(() => (
|
|
1878
|
+
const rendered = render(() => (
|
|
1879
1879
|
<QueryClientProvider client={queryClient}>
|
|
1880
1880
|
<Page />
|
|
1881
1881
|
</QueryClientProvider>
|
|
1882
1882
|
))
|
|
1883
1883
|
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1884
|
+
rendered.getByText('First Data: init')
|
|
1885
|
+
rendered.getByText('Second Data: init')
|
|
1886
|
+
rendered.getByText('First Status: success')
|
|
1887
|
+
rendered.getByText('Second Status: success')
|
|
1888
1888
|
})
|
|
1889
1889
|
|
|
1890
1890
|
it('should not override query configuration on render', async () => {
|
|
@@ -1964,13 +1964,13 @@ describe('createQuery', () => {
|
|
|
1964
1964
|
return <div>{state.data}</div>
|
|
1965
1965
|
}
|
|
1966
1966
|
|
|
1967
|
-
render(() => (
|
|
1967
|
+
const rendered = render(() => (
|
|
1968
1968
|
<QueryClientProvider client={queryClient}>
|
|
1969
1969
|
<Page />
|
|
1970
1970
|
</QueryClientProvider>
|
|
1971
1971
|
))
|
|
1972
1972
|
|
|
1973
|
-
await waitFor(() =>
|
|
1973
|
+
await waitFor(() => rendered.getByText('new'))
|
|
1974
1974
|
})
|
|
1975
1975
|
|
|
1976
1976
|
// See https://github.com/tannerlinsley/react-query/issues/170
|
|
@@ -2001,7 +2001,7 @@ describe('createQuery', () => {
|
|
|
2001
2001
|
)
|
|
2002
2002
|
}
|
|
2003
2003
|
|
|
2004
|
-
render(() => (
|
|
2004
|
+
const rendered = render(() => (
|
|
2005
2005
|
<QueryClientProvider client={queryClient}>
|
|
2006
2006
|
<Page />
|
|
2007
2007
|
</QueryClientProvider>
|
|
@@ -2009,9 +2009,9 @@ describe('createQuery', () => {
|
|
|
2009
2009
|
|
|
2010
2010
|
// use "act" to wait for state update and prevent console warning
|
|
2011
2011
|
|
|
2012
|
-
|
|
2013
|
-
await waitFor(() =>
|
|
2014
|
-
await waitFor(() =>
|
|
2012
|
+
rendered.getByText('First Status: pending, idle')
|
|
2013
|
+
await waitFor(() => rendered.getByText('Second Status: pending, fetching'))
|
|
2014
|
+
await waitFor(() => rendered.getByText('Second Status: success, idle'))
|
|
2015
2015
|
})
|
|
2016
2016
|
|
|
2017
2017
|
// See https://github.com/tannerlinsley/react-query/issues/144
|
|
@@ -2030,13 +2030,13 @@ describe('createQuery', () => {
|
|
|
2030
2030
|
return <div>status: {status}</div>
|
|
2031
2031
|
}
|
|
2032
2032
|
|
|
2033
|
-
render(() => (
|
|
2033
|
+
const rendered = render(() => (
|
|
2034
2034
|
<QueryClientProvider client={queryClient}>
|
|
2035
2035
|
<Page />
|
|
2036
2036
|
</QueryClientProvider>
|
|
2037
2037
|
))
|
|
2038
2038
|
|
|
2039
|
-
|
|
2039
|
+
rendered.getByText('status: pending')
|
|
2040
2040
|
})
|
|
2041
2041
|
|
|
2042
2042
|
it('should not refetch query on focus when `enabled` is set to `false`', async () => {
|
|
@@ -2057,13 +2057,13 @@ describe('createQuery', () => {
|
|
|
2057
2057
|
)
|
|
2058
2058
|
}
|
|
2059
2059
|
|
|
2060
|
-
render(() => (
|
|
2060
|
+
const rendered = render(() => (
|
|
2061
2061
|
<QueryClientProvider client={queryClient}>
|
|
2062
2062
|
<Page />
|
|
2063
2063
|
</QueryClientProvider>
|
|
2064
2064
|
))
|
|
2065
2065
|
|
|
2066
|
-
await waitFor(() =>
|
|
2066
|
+
await waitFor(() => rendered.getByText('default'))
|
|
2067
2067
|
|
|
2068
2068
|
window.dispatchEvent(new Event('visibilitychange'))
|
|
2069
2069
|
|
|
@@ -2237,13 +2237,13 @@ describe('createQuery', () => {
|
|
|
2237
2237
|
return <div>data: {state.data}</div>
|
|
2238
2238
|
}
|
|
2239
2239
|
|
|
2240
|
-
render(() => (
|
|
2240
|
+
const rendered = render(() => (
|
|
2241
2241
|
<QueryClientProvider client={queryClient}>
|
|
2242
2242
|
<Page />
|
|
2243
2243
|
</QueryClientProvider>
|
|
2244
2244
|
))
|
|
2245
2245
|
|
|
2246
|
-
await
|
|
2246
|
+
await rendered.findByText('data: 0')
|
|
2247
2247
|
|
|
2248
2248
|
expect(states.length).toBe(2)
|
|
2249
2249
|
expect(states[0]).toMatchObject({ data: undefined, isFetching: true })
|
|
@@ -2251,7 +2251,7 @@ describe('createQuery', () => {
|
|
|
2251
2251
|
|
|
2252
2252
|
window.dispatchEvent(new Event('visibilitychange'))
|
|
2253
2253
|
|
|
2254
|
-
await
|
|
2254
|
+
await rendered.findByText('data: 1')
|
|
2255
2255
|
|
|
2256
2256
|
// refetch should happen
|
|
2257
2257
|
expect(states.length).toBe(4)
|
|
@@ -2377,14 +2377,14 @@ describe('createQuery', () => {
|
|
|
2377
2377
|
)
|
|
2378
2378
|
}
|
|
2379
2379
|
|
|
2380
|
-
render(() => (
|
|
2380
|
+
const rendered = render(() => (
|
|
2381
2381
|
<QueryClientProvider client={queryClient}>
|
|
2382
2382
|
<Page />
|
|
2383
2383
|
</QueryClientProvider>
|
|
2384
2384
|
))
|
|
2385
2385
|
|
|
2386
|
-
await waitFor(() =>
|
|
2387
|
-
await waitFor(() =>
|
|
2386
|
+
await waitFor(() => rendered.getByText('error'))
|
|
2387
|
+
await waitFor(() => rendered.getByText('Error test jaylen'))
|
|
2388
2388
|
|
|
2389
2389
|
consoleMock.mockRestore()
|
|
2390
2390
|
})
|
|
@@ -2412,7 +2412,7 @@ describe('createQuery', () => {
|
|
|
2412
2412
|
)
|
|
2413
2413
|
}
|
|
2414
2414
|
|
|
2415
|
-
render(() => (
|
|
2415
|
+
const rendered = render(() => (
|
|
2416
2416
|
<QueryClientProvider client={queryClient}>
|
|
2417
2417
|
<ErrorBoundary fallback={() => <div>error boundary</div>}>
|
|
2418
2418
|
<Page />
|
|
@@ -2420,7 +2420,7 @@ describe('createQuery', () => {
|
|
|
2420
2420
|
</QueryClientProvider>
|
|
2421
2421
|
))
|
|
2422
2422
|
|
|
2423
|
-
await waitFor(() =>
|
|
2423
|
+
await waitFor(() => rendered.getByText('error boundary'))
|
|
2424
2424
|
|
|
2425
2425
|
consoleMock.mockRestore()
|
|
2426
2426
|
})
|
|
@@ -2474,7 +2474,7 @@ describe('createQuery', () => {
|
|
|
2474
2474
|
)
|
|
2475
2475
|
}
|
|
2476
2476
|
|
|
2477
|
-
render(() => (
|
|
2477
|
+
const rendered = render(() => (
|
|
2478
2478
|
<QueryClientProvider client={queryClient}>
|
|
2479
2479
|
<ErrorBoundary fallback={() => <div>error boundary</div>}>
|
|
2480
2480
|
<Page />
|
|
@@ -2482,8 +2482,8 @@ describe('createQuery', () => {
|
|
|
2482
2482
|
</QueryClientProvider>
|
|
2483
2483
|
))
|
|
2484
2484
|
|
|
2485
|
-
await waitFor(() =>
|
|
2486
|
-
await waitFor(() =>
|
|
2485
|
+
await waitFor(() => rendered.getByText('error'))
|
|
2486
|
+
await waitFor(() => rendered.getByText('Local Error'))
|
|
2487
2487
|
})
|
|
2488
2488
|
|
|
2489
2489
|
it('should throw error instead of setting status when error should be thrown', async () => {
|
|
@@ -2505,7 +2505,7 @@ describe('createQuery', () => {
|
|
|
2505
2505
|
)
|
|
2506
2506
|
}
|
|
2507
2507
|
|
|
2508
|
-
render(() => (
|
|
2508
|
+
const rendered = render(() => (
|
|
2509
2509
|
<QueryClientProvider client={queryClient}>
|
|
2510
2510
|
<ErrorBoundary
|
|
2511
2511
|
fallback={(error) => (
|
|
@@ -2521,8 +2521,8 @@ describe('createQuery', () => {
|
|
|
2521
2521
|
</QueryClientProvider>
|
|
2522
2522
|
))
|
|
2523
2523
|
|
|
2524
|
-
await waitFor(() =>
|
|
2525
|
-
await waitFor(() =>
|
|
2524
|
+
await waitFor(() => rendered.getByText('error boundary'))
|
|
2525
|
+
await waitFor(() => rendered.getByText('Remote Error'))
|
|
2526
2526
|
})
|
|
2527
2527
|
|
|
2528
2528
|
it('should continue retries when observers unmount and remount while waiting for a retry (#3031)', async () => {
|
|
@@ -2564,18 +2564,18 @@ describe('createQuery', () => {
|
|
|
2564
2564
|
)
|
|
2565
2565
|
}
|
|
2566
2566
|
|
|
2567
|
-
render(() => (
|
|
2567
|
+
const rendered = render(() => (
|
|
2568
2568
|
<QueryClientProvider client={queryClient}>
|
|
2569
2569
|
<App />
|
|
2570
2570
|
</QueryClientProvider>
|
|
2571
2571
|
))
|
|
2572
2572
|
|
|
2573
|
-
await waitFor(() =>
|
|
2574
|
-
await waitFor(() =>
|
|
2575
|
-
fireEvent.click(
|
|
2576
|
-
await waitFor(() =>
|
|
2577
|
-
fireEvent.click(
|
|
2578
|
-
await waitFor(() =>
|
|
2573
|
+
await waitFor(() => rendered.getByText('failureCount: 1'))
|
|
2574
|
+
await waitFor(() => rendered.getByText('failureReason: some error'))
|
|
2575
|
+
fireEvent.click(rendered.getByRole('button', { name: /hide/i }))
|
|
2576
|
+
await waitFor(() => rendered.getByRole('button', { name: /show/i }))
|
|
2577
|
+
fireEvent.click(rendered.getByRole('button', { name: /show/i }))
|
|
2578
|
+
await waitFor(() => rendered.getByText('error: some error'))
|
|
2579
2579
|
|
|
2580
2580
|
expect(count).toBe(3)
|
|
2581
2581
|
})
|
|
@@ -2621,19 +2621,19 @@ describe('createQuery', () => {
|
|
|
2621
2621
|
)
|
|
2622
2622
|
}
|
|
2623
2623
|
|
|
2624
|
-
render(() => (
|
|
2624
|
+
const rendered = render(() => (
|
|
2625
2625
|
<QueryClientProvider client={queryClient}>
|
|
2626
2626
|
<App />
|
|
2627
2627
|
</QueryClientProvider>
|
|
2628
2628
|
))
|
|
2629
2629
|
|
|
2630
|
-
await waitFor(() =>
|
|
2631
|
-
await waitFor(() =>
|
|
2632
|
-
fireEvent.click(
|
|
2633
|
-
fireEvent.click(
|
|
2634
|
-
await waitFor(() =>
|
|
2635
|
-
fireEvent.click(
|
|
2636
|
-
await waitFor(() =>
|
|
2630
|
+
await waitFor(() => rendered.getByText('failureCount: 1'))
|
|
2631
|
+
await waitFor(() => rendered.getByText('failureReason: some error'))
|
|
2632
|
+
fireEvent.click(rendered.getByRole('button', { name: /hide/i }))
|
|
2633
|
+
fireEvent.click(rendered.getByRole('button', { name: /cancel/i }))
|
|
2634
|
+
await waitFor(() => rendered.getByRole('button', { name: /show/i }))
|
|
2635
|
+
fireEvent.click(rendered.getByRole('button', { name: /show/i }))
|
|
2636
|
+
await waitFor(() => rendered.getByText('error: some error'))
|
|
2637
2637
|
|
|
2638
2638
|
// initial fetch (1), which will be cancelled, followed by new mount(2) + 2 retries = 4
|
|
2639
2639
|
expect(count).toBe(4)
|
|
@@ -2667,13 +2667,13 @@ describe('createQuery', () => {
|
|
|
2667
2667
|
)
|
|
2668
2668
|
}
|
|
2669
2669
|
|
|
2670
|
-
render(() => (
|
|
2670
|
+
const rendered = render(() => (
|
|
2671
2671
|
<QueryClientProvider client={queryClient}>
|
|
2672
2672
|
<Page />
|
|
2673
2673
|
</QueryClientProvider>
|
|
2674
2674
|
))
|
|
2675
2675
|
|
|
2676
|
-
await waitFor(() =>
|
|
2676
|
+
await waitFor(() => rendered.getByText('data: data'))
|
|
2677
2677
|
await waitFor(() => expect(states.length).toBe(3))
|
|
2678
2678
|
|
|
2679
2679
|
expect(states[0]).toMatchObject({
|
|
@@ -2921,18 +2921,18 @@ describe('createQuery', () => {
|
|
|
2921
2921
|
)
|
|
2922
2922
|
}
|
|
2923
2923
|
|
|
2924
|
-
render(() => (
|
|
2924
|
+
const rendered = render(() => (
|
|
2925
2925
|
<QueryClientProvider client={queryClient}>
|
|
2926
2926
|
<Page />
|
|
2927
2927
|
</QueryClientProvider>
|
|
2928
2928
|
))
|
|
2929
2929
|
|
|
2930
|
-
await waitFor(() =>
|
|
2931
|
-
await waitFor(() =>
|
|
2930
|
+
await waitFor(() => rendered.getByText('pending'))
|
|
2931
|
+
await waitFor(() => rendered.getByText('error'))
|
|
2932
2932
|
|
|
2933
2933
|
// query should fail `retry + 1` times, since first time isn't a "retry"
|
|
2934
|
-
await waitFor(() =>
|
|
2935
|
-
await waitFor(() =>
|
|
2934
|
+
await waitFor(() => rendered.getByText('Failed 2 times'))
|
|
2935
|
+
await waitFor(() => rendered.getByText('Failed because Error test Barrett'))
|
|
2936
2936
|
|
|
2937
2937
|
expect(queryFn).toHaveBeenCalledTimes(2)
|
|
2938
2938
|
})
|
|
@@ -2968,17 +2968,17 @@ describe('createQuery', () => {
|
|
|
2968
2968
|
)
|
|
2969
2969
|
}
|
|
2970
2970
|
|
|
2971
|
-
render(() => (
|
|
2971
|
+
const rendered = render(() => (
|
|
2972
2972
|
<QueryClientProvider client={queryClient}>
|
|
2973
2973
|
<Page />
|
|
2974
2974
|
</QueryClientProvider>
|
|
2975
2975
|
))
|
|
2976
2976
|
|
|
2977
|
-
await waitFor(() =>
|
|
2978
|
-
await waitFor(() =>
|
|
2979
|
-
await waitFor(() =>
|
|
2980
|
-
await waitFor(() =>
|
|
2981
|
-
await waitFor(() =>
|
|
2977
|
+
await waitFor(() => rendered.getByText('pending'))
|
|
2978
|
+
await waitFor(() => rendered.getByText('error'))
|
|
2979
|
+
await waitFor(() => rendered.getByText('Failed 2 times'))
|
|
2980
|
+
await waitFor(() => rendered.getByText('Failed because NoRetry'))
|
|
2981
|
+
await waitFor(() => rendered.getByText('NoRetry'))
|
|
2982
2982
|
|
|
2983
2983
|
expect(queryFn).toHaveBeenCalledTimes(2)
|
|
2984
2984
|
})
|
|
@@ -3010,7 +3010,7 @@ describe('createQuery', () => {
|
|
|
3010
3010
|
)
|
|
3011
3011
|
}
|
|
3012
3012
|
|
|
3013
|
-
render(() => (
|
|
3013
|
+
const rendered = render(() => (
|
|
3014
3014
|
<QueryClientProvider client={queryClient}>
|
|
3015
3015
|
<Page />
|
|
3016
3016
|
</QueryClientProvider>
|
|
@@ -3020,8 +3020,8 @@ describe('createQuery', () => {
|
|
|
3020
3020
|
|
|
3021
3021
|
expect(queryFn).toHaveBeenCalledTimes(1)
|
|
3022
3022
|
|
|
3023
|
-
await waitFor(() =>
|
|
3024
|
-
await waitFor(() =>
|
|
3023
|
+
await waitFor(() => rendered.getByText('Failed because DelayError: 50ms'))
|
|
3024
|
+
await waitFor(() => rendered.getByText('Failed 2 times'))
|
|
3025
3025
|
|
|
3026
3026
|
expect(queryFn).toHaveBeenCalledTimes(2)
|
|
3027
3027
|
})
|
|
@@ -3056,36 +3056,36 @@ describe('createQuery', () => {
|
|
|
3056
3056
|
)
|
|
3057
3057
|
}
|
|
3058
3058
|
|
|
3059
|
-
render(() => (
|
|
3059
|
+
const rendered = render(() => (
|
|
3060
3060
|
<QueryClientProvider client={queryClient}>
|
|
3061
3061
|
<Page />
|
|
3062
3062
|
</QueryClientProvider>
|
|
3063
3063
|
))
|
|
3064
3064
|
|
|
3065
3065
|
// The query should display the first error result
|
|
3066
|
-
await waitFor(() =>
|
|
3067
|
-
await waitFor(() =>
|
|
3068
|
-
await waitFor(() =>
|
|
3069
|
-
await waitFor(() =>
|
|
3066
|
+
await waitFor(() => rendered.getByText('failureCount 1'))
|
|
3067
|
+
await waitFor(() => rendered.getByText('failureReason fetching error 1'))
|
|
3068
|
+
await waitFor(() => rendered.getByText('status pending'))
|
|
3069
|
+
await waitFor(() => rendered.getByText('error null'))
|
|
3070
3070
|
|
|
3071
3071
|
// Check if the query really paused
|
|
3072
3072
|
await sleep(10)
|
|
3073
|
-
await waitFor(() =>
|
|
3074
|
-
await waitFor(() =>
|
|
3073
|
+
await waitFor(() => rendered.getByText('failureCount 1'))
|
|
3074
|
+
await waitFor(() => rendered.getByText('failureReason fetching error 1'))
|
|
3075
3075
|
|
|
3076
3076
|
visibilityMock.mockRestore()
|
|
3077
3077
|
window.dispatchEvent(new Event('visibilitychange'))
|
|
3078
3078
|
|
|
3079
3079
|
// Wait for the final result
|
|
3080
|
-
await waitFor(() =>
|
|
3081
|
-
await waitFor(() =>
|
|
3082
|
-
await waitFor(() =>
|
|
3083
|
-
await waitFor(() =>
|
|
3080
|
+
await waitFor(() => rendered.getByText('failureCount 4'))
|
|
3081
|
+
await waitFor(() => rendered.getByText('failureReason fetching error 4'))
|
|
3082
|
+
await waitFor(() => rendered.getByText('status error'))
|
|
3083
|
+
await waitFor(() => rendered.getByText('error fetching error 4'))
|
|
3084
3084
|
|
|
3085
3085
|
// Check if the query really stopped
|
|
3086
3086
|
await sleep(10)
|
|
3087
|
-
await waitFor(() =>
|
|
3088
|
-
await waitFor(() =>
|
|
3087
|
+
await waitFor(() => rendered.getByText('failureCount 4'))
|
|
3088
|
+
await waitFor(() => rendered.getByText('failureReason fetching error 4'))
|
|
3089
3089
|
})
|
|
3090
3090
|
|
|
3091
3091
|
it('should fetch on mount when a query was already created with setQueryData', async () => {
|
|
@@ -3298,16 +3298,16 @@ describe('createQuery', () => {
|
|
|
3298
3298
|
)
|
|
3299
3299
|
}
|
|
3300
3300
|
|
|
3301
|
-
render(() => (
|
|
3301
|
+
const rendered = render(() => (
|
|
3302
3302
|
<QueryClientProvider client={queryClient}>
|
|
3303
3303
|
<Page />
|
|
3304
3304
|
</QueryClientProvider>
|
|
3305
3305
|
))
|
|
3306
3306
|
|
|
3307
|
-
await waitFor(() =>
|
|
3308
|
-
await waitFor(() =>
|
|
3309
|
-
await waitFor(() =>
|
|
3310
|
-
await waitFor(() =>
|
|
3307
|
+
await waitFor(() => rendered.getByText('failureCount 2'))
|
|
3308
|
+
await waitFor(() => rendered.getByText('failureReason error'))
|
|
3309
|
+
await waitFor(() => rendered.getByText('failureCount 0'))
|
|
3310
|
+
await waitFor(() => rendered.getByText('failureReason null'))
|
|
3311
3311
|
})
|
|
3312
3312
|
|
|
3313
3313
|
// See https://github.com/tannerlinsley/react-query/issues/199
|
|
@@ -3349,16 +3349,16 @@ describe('createQuery', () => {
|
|
|
3349
3349
|
)
|
|
3350
3350
|
}
|
|
3351
3351
|
|
|
3352
|
-
render(() => (
|
|
3352
|
+
const rendered = render(() => (
|
|
3353
3353
|
<QueryClientProvider client={queryClient}>
|
|
3354
3354
|
<Page />
|
|
3355
3355
|
</QueryClientProvider>
|
|
3356
3356
|
))
|
|
3357
|
-
await waitFor(() =>
|
|
3357
|
+
await waitFor(() => rendered.getByText('isPrefetched'))
|
|
3358
3358
|
|
|
3359
|
-
fireEvent.click(
|
|
3360
|
-
await waitFor(() =>
|
|
3361
|
-
await waitFor(() =>
|
|
3359
|
+
fireEvent.click(rendered.getByText('setKey'))
|
|
3360
|
+
await waitFor(() => rendered.getByText('data: prefetched data'))
|
|
3361
|
+
await waitFor(() => rendered.getByText('data: 1'))
|
|
3362
3362
|
expect(count).toBe(1)
|
|
3363
3363
|
})
|
|
3364
3364
|
|
|
@@ -3385,21 +3385,21 @@ describe('createQuery', () => {
|
|
|
3385
3385
|
)
|
|
3386
3386
|
}
|
|
3387
3387
|
|
|
3388
|
-
render(() => (
|
|
3388
|
+
const rendered = render(() => (
|
|
3389
3389
|
<QueryClientProvider client={queryClient}>
|
|
3390
3390
|
<Page />
|
|
3391
3391
|
</QueryClientProvider>
|
|
3392
3392
|
))
|
|
3393
3393
|
|
|
3394
|
-
|
|
3395
|
-
|
|
3394
|
+
rendered.getByText('FetchStatus: idle')
|
|
3395
|
+
rendered.getByText('Data: no data')
|
|
3396
3396
|
|
|
3397
|
-
fireEvent.click(
|
|
3397
|
+
fireEvent.click(rendered.getByText('fetch'))
|
|
3398
3398
|
|
|
3399
|
-
await waitFor(() =>
|
|
3399
|
+
await waitFor(() => rendered.getByText('FetchStatus: fetching'))
|
|
3400
3400
|
await waitFor(() => [
|
|
3401
|
-
|
|
3402
|
-
|
|
3401
|
+
rendered.getByText('FetchStatus: idle'),
|
|
3402
|
+
rendered.getByText('Data: data'),
|
|
3403
3403
|
])
|
|
3404
3404
|
})
|
|
3405
3405
|
|
|
@@ -3424,14 +3424,14 @@ describe('createQuery', () => {
|
|
|
3424
3424
|
return <div>data: {result.data}</div>
|
|
3425
3425
|
}
|
|
3426
3426
|
|
|
3427
|
-
render(() => (
|
|
3427
|
+
const rendered = render(() => (
|
|
3428
3428
|
<QueryClientProvider client={queryClient}>
|
|
3429
3429
|
<Page />
|
|
3430
3430
|
</QueryClientProvider>
|
|
3431
3431
|
))
|
|
3432
3432
|
|
|
3433
|
-
await waitFor(() =>
|
|
3434
|
-
await waitFor(() =>
|
|
3433
|
+
await waitFor(() => rendered.getByText('data: initialData'))
|
|
3434
|
+
await waitFor(() => rendered.getByText('data: serverData'))
|
|
3435
3435
|
|
|
3436
3436
|
expect(results.length).toBe(2)
|
|
3437
3437
|
expect(results[0]).toMatchObject({ data: 'initialData', isFetching: true })
|
|
@@ -3525,7 +3525,7 @@ describe('createQuery', () => {
|
|
|
3525
3525
|
return <div>fetchStatus: {fetchStatus}</div>
|
|
3526
3526
|
}
|
|
3527
3527
|
|
|
3528
|
-
render(() => (
|
|
3528
|
+
const rendered = render(() => (
|
|
3529
3529
|
<QueryClientProvider client={queryClient}>
|
|
3530
3530
|
<Page />
|
|
3531
3531
|
</QueryClientProvider>
|
|
@@ -3533,7 +3533,7 @@ describe('createQuery', () => {
|
|
|
3533
3533
|
|
|
3534
3534
|
expect(queryFn).not.toHaveBeenCalled()
|
|
3535
3535
|
expect(queryCache.find({ queryKey: key })).not.toBeUndefined()
|
|
3536
|
-
|
|
3536
|
+
rendered.getByText('fetchStatus: idle')
|
|
3537
3537
|
})
|
|
3538
3538
|
|
|
3539
3539
|
// See https://github.com/tannerlinsley/react-query/issues/360
|
|
@@ -3556,13 +3556,13 @@ describe('createQuery', () => {
|
|
|
3556
3556
|
)
|
|
3557
3557
|
}
|
|
3558
3558
|
|
|
3559
|
-
render(() => (
|
|
3559
|
+
const rendered = render(() => (
|
|
3560
3560
|
<QueryClientProvider client={queryClient}>
|
|
3561
3561
|
<Page />
|
|
3562
3562
|
</QueryClientProvider>
|
|
3563
3563
|
))
|
|
3564
3564
|
|
|
3565
|
-
await waitFor(() =>
|
|
3565
|
+
await waitFor(() => rendered.getByText('status: pending, idle'))
|
|
3566
3566
|
})
|
|
3567
3567
|
|
|
3568
3568
|
it('should not schedule garbage collection, if gcTimeout is set to `Infinity`', async () => {
|
|
@@ -3577,16 +3577,16 @@ describe('createQuery', () => {
|
|
|
3577
3577
|
return <div>{query.data}</div>
|
|
3578
3578
|
}
|
|
3579
3579
|
|
|
3580
|
-
const
|
|
3580
|
+
const rendered = render(() => (
|
|
3581
3581
|
<QueryClientProvider client={queryClient}>
|
|
3582
3582
|
<Page />
|
|
3583
3583
|
</QueryClientProvider>
|
|
3584
3584
|
))
|
|
3585
3585
|
|
|
3586
|
-
await waitFor(() =>
|
|
3586
|
+
await waitFor(() => rendered.getByText('fetched data'))
|
|
3587
3587
|
const setTimeoutSpy = vi.spyOn(window, 'setTimeout')
|
|
3588
3588
|
|
|
3589
|
-
|
|
3589
|
+
rendered.unmount()
|
|
3590
3590
|
|
|
3591
3591
|
expect(setTimeoutSpy).not.toHaveBeenCalled()
|
|
3592
3592
|
})
|
|
@@ -3603,16 +3603,16 @@ describe('createQuery', () => {
|
|
|
3603
3603
|
return <div>{query.data}</div>
|
|
3604
3604
|
}
|
|
3605
3605
|
|
|
3606
|
-
const
|
|
3606
|
+
const rendered = render(() => (
|
|
3607
3607
|
<QueryClientProvider client={queryClient}>
|
|
3608
3608
|
<Page />
|
|
3609
3609
|
</QueryClientProvider>
|
|
3610
3610
|
))
|
|
3611
3611
|
|
|
3612
|
-
await waitFor(() =>
|
|
3612
|
+
await waitFor(() => rendered.getByText('fetched data'))
|
|
3613
3613
|
const setTimeoutSpy = vi.spyOn(window, 'setTimeout')
|
|
3614
3614
|
|
|
3615
|
-
|
|
3615
|
+
rendered.unmount()
|
|
3616
3616
|
|
|
3617
3617
|
expect(setTimeoutSpy).toHaveBeenLastCalledWith(
|
|
3618
3618
|
expect.any(Function),
|
|
@@ -3654,17 +3654,17 @@ describe('createQuery', () => {
|
|
|
3654
3654
|
)
|
|
3655
3655
|
}
|
|
3656
3656
|
|
|
3657
|
-
render(() => (
|
|
3657
|
+
const rendered = render(() => (
|
|
3658
3658
|
<QueryClientProvider client={queryClient}>
|
|
3659
3659
|
<Page />
|
|
3660
3660
|
</QueryClientProvider>
|
|
3661
3661
|
))
|
|
3662
3662
|
|
|
3663
|
-
await waitFor(() =>
|
|
3664
|
-
await waitFor(() =>
|
|
3665
|
-
fireEvent.click(
|
|
3666
|
-
await waitFor(() =>
|
|
3667
|
-
await waitFor(() =>
|
|
3663
|
+
await waitFor(() => rendered.getByText('status pending'))
|
|
3664
|
+
await waitFor(() => rendered.getByText('status success'))
|
|
3665
|
+
fireEvent.click(rendered.getByText('refetch'))
|
|
3666
|
+
await waitFor(() => rendered.getByText('isFetching true'))
|
|
3667
|
+
await waitFor(() => rendered.getByText('isFetching false'))
|
|
3668
3668
|
expect(queryFn).toHaveBeenCalledTimes(2)
|
|
3669
3669
|
expect(memoFn).toHaveBeenCalledTimes(2)
|
|
3670
3670
|
})
|
|
@@ -3690,16 +3690,16 @@ describe('createQuery', () => {
|
|
|
3690
3690
|
return <div>count: {state.data}</div>
|
|
3691
3691
|
}
|
|
3692
3692
|
|
|
3693
|
-
render(() => (
|
|
3693
|
+
const rendered = render(() => (
|
|
3694
3694
|
<QueryClientProvider client={queryClient}>
|
|
3695
3695
|
<Page />
|
|
3696
3696
|
</QueryClientProvider>
|
|
3697
3697
|
))
|
|
3698
3698
|
|
|
3699
3699
|
// mount
|
|
3700
|
-
await waitFor(() =>
|
|
3701
|
-
await waitFor(() =>
|
|
3702
|
-
await waitFor(() =>
|
|
3700
|
+
await waitFor(() => rendered.getByText('count: 0'))
|
|
3701
|
+
await waitFor(() => rendered.getByText('count: 1'))
|
|
3702
|
+
await waitFor(() => rendered.getByText('count: 2'))
|
|
3703
3703
|
})
|
|
3704
3704
|
|
|
3705
3705
|
it('should refetch in an interval depending on function result', async () => {
|
|
@@ -3731,13 +3731,13 @@ describe('createQuery', () => {
|
|
|
3731
3731
|
)
|
|
3732
3732
|
}
|
|
3733
3733
|
|
|
3734
|
-
render(() => (
|
|
3734
|
+
const rendered = render(() => (
|
|
3735
3735
|
<QueryClientProvider client={queryClient}>
|
|
3736
3736
|
<Page />
|
|
3737
3737
|
</QueryClientProvider>
|
|
3738
3738
|
))
|
|
3739
3739
|
|
|
3740
|
-
await waitFor(() =>
|
|
3740
|
+
await waitFor(() => rendered.getByText('count: 2'))
|
|
3741
3741
|
|
|
3742
3742
|
expect(states.length).toEqual(6)
|
|
3743
3743
|
|
|
@@ -3793,13 +3793,13 @@ describe('createQuery', () => {
|
|
|
3793
3793
|
return <div>count: {state.data}</div>
|
|
3794
3794
|
}
|
|
3795
3795
|
|
|
3796
|
-
render(() => (
|
|
3796
|
+
const rendered = render(() => (
|
|
3797
3797
|
<QueryClientProvider client={queryClient}>
|
|
3798
3798
|
<Page />
|
|
3799
3799
|
</QueryClientProvider>
|
|
3800
3800
|
))
|
|
3801
3801
|
|
|
3802
|
-
await waitFor(() =>
|
|
3802
|
+
await waitFor(() => rendered.getByText('count: 1'))
|
|
3803
3803
|
|
|
3804
3804
|
await sleep(10) //extra sleep to make sure we're not re-fetching
|
|
3805
3805
|
|
|
@@ -3828,13 +3828,13 @@ describe('createQuery', () => {
|
|
|
3828
3828
|
return <>{JSON.stringify(result.data)}</>
|
|
3829
3829
|
}
|
|
3830
3830
|
|
|
3831
|
-
render(() => (
|
|
3831
|
+
const rendered = render(() => (
|
|
3832
3832
|
<QueryClientProvider client={queryClient}>
|
|
3833
3833
|
<Page />
|
|
3834
3834
|
</QueryClientProvider>
|
|
3835
3835
|
))
|
|
3836
3836
|
|
|
3837
|
-
await waitFor(() =>
|
|
3837
|
+
await waitFor(() => rendered.getByText(''))
|
|
3838
3838
|
})
|
|
3839
3839
|
|
|
3840
3840
|
it('should accept an object as query key', async () => {
|
|
@@ -3846,13 +3846,13 @@ describe('createQuery', () => {
|
|
|
3846
3846
|
return <>{JSON.stringify(result.data)}</>
|
|
3847
3847
|
}
|
|
3848
3848
|
|
|
3849
|
-
render(() => (
|
|
3849
|
+
const rendered = render(() => (
|
|
3850
3850
|
<QueryClientProvider client={queryClient}>
|
|
3851
3851
|
<Page />
|
|
3852
3852
|
</QueryClientProvider>
|
|
3853
3853
|
))
|
|
3854
3854
|
|
|
3855
|
-
await waitFor(() =>
|
|
3855
|
+
await waitFor(() => rendered.getByText('[{"a":"a"}]'))
|
|
3856
3856
|
})
|
|
3857
3857
|
|
|
3858
3858
|
it('should refetch if any query instance becomes enabled', async () => {
|
|
@@ -3881,14 +3881,14 @@ describe('createQuery', () => {
|
|
|
3881
3881
|
)
|
|
3882
3882
|
}
|
|
3883
3883
|
|
|
3884
|
-
render(() => (
|
|
3884
|
+
const rendered = render(() => (
|
|
3885
3885
|
<QueryClientProvider client={queryClient}>
|
|
3886
3886
|
<Page />
|
|
3887
3887
|
</QueryClientProvider>
|
|
3888
3888
|
))
|
|
3889
3889
|
expect(queryFn).toHaveBeenCalledTimes(0)
|
|
3890
|
-
fireEvent.click(
|
|
3891
|
-
await waitFor(() =>
|
|
3890
|
+
fireEvent.click(rendered.getByText('enable'))
|
|
3891
|
+
await waitFor(() => rendered.getByText('data'))
|
|
3892
3892
|
expect(queryFn).toHaveBeenCalledTimes(1)
|
|
3893
3893
|
})
|
|
3894
3894
|
|
|
@@ -3916,12 +3916,12 @@ describe('createQuery', () => {
|
|
|
3916
3916
|
)
|
|
3917
3917
|
}
|
|
3918
3918
|
|
|
3919
|
-
render(() => (
|
|
3919
|
+
const rendered = render(() => (
|
|
3920
3920
|
<QueryClientProvider client={queryClient}>
|
|
3921
3921
|
<Page />
|
|
3922
3922
|
</QueryClientProvider>
|
|
3923
3923
|
))
|
|
3924
|
-
await waitFor(() =>
|
|
3924
|
+
await waitFor(() => rendered.getByText('Data: data'))
|
|
3925
3925
|
|
|
3926
3926
|
expect(states).toMatchObject([
|
|
3927
3927
|
{
|
|
@@ -3969,12 +3969,12 @@ describe('createQuery', () => {
|
|
|
3969
3969
|
)
|
|
3970
3970
|
}
|
|
3971
3971
|
|
|
3972
|
-
render(() => (
|
|
3972
|
+
const rendered = render(() => (
|
|
3973
3973
|
<QueryClientProvider client={queryClient}>
|
|
3974
3974
|
<Page />
|
|
3975
3975
|
</QueryClientProvider>
|
|
3976
3976
|
))
|
|
3977
|
-
await waitFor(() =>
|
|
3977
|
+
await waitFor(() => rendered.getByText('Data: data'))
|
|
3978
3978
|
|
|
3979
3979
|
expect(states).toMatchObject([
|
|
3980
3980
|
{
|
|
@@ -4029,12 +4029,12 @@ describe('createQuery', () => {
|
|
|
4029
4029
|
)
|
|
4030
4030
|
}
|
|
4031
4031
|
|
|
4032
|
-
render(() => (
|
|
4032
|
+
const rendered = render(() => (
|
|
4033
4033
|
<QueryClientProvider client={queryClient}>
|
|
4034
4034
|
<Page />
|
|
4035
4035
|
</QueryClientProvider>
|
|
4036
4036
|
))
|
|
4037
|
-
await waitFor(() =>
|
|
4037
|
+
await waitFor(() => rendered.getByText('Data: 2'))
|
|
4038
4038
|
|
|
4039
4039
|
expect(states).toMatchObject([
|
|
4040
4040
|
{
|
|
@@ -4079,12 +4079,12 @@ describe('createQuery', () => {
|
|
|
4079
4079
|
)
|
|
4080
4080
|
}
|
|
4081
4081
|
|
|
4082
|
-
render(() => (
|
|
4082
|
+
const rendered = render(() => (
|
|
4083
4083
|
<QueryClientProvider client={queryClient}>
|
|
4084
4084
|
<Page />
|
|
4085
4085
|
</QueryClientProvider>
|
|
4086
4086
|
))
|
|
4087
|
-
await waitFor(() =>
|
|
4087
|
+
await waitFor(() => rendered.getByText('Data: 2'))
|
|
4088
4088
|
|
|
4089
4089
|
expect(states).toMatchObject([
|
|
4090
4090
|
{
|
|
@@ -4140,24 +4140,24 @@ describe('createQuery', () => {
|
|
|
4140
4140
|
)
|
|
4141
4141
|
}
|
|
4142
4142
|
|
|
4143
|
-
render(() => (
|
|
4143
|
+
const rendered = render(() => (
|
|
4144
4144
|
<QueryClientProvider client={queryClient}>
|
|
4145
4145
|
<Page />
|
|
4146
4146
|
</QueryClientProvider>
|
|
4147
4147
|
))
|
|
4148
|
-
await waitFor(() =>
|
|
4148
|
+
await waitFor(() => rendered.getByText('Data: selected 101')) // 99 + 2
|
|
4149
4149
|
|
|
4150
|
-
await waitFor(() =>
|
|
4150
|
+
await waitFor(() => rendered.getByText('Data: selected 2')) // 0 + 2
|
|
4151
4151
|
|
|
4152
|
-
fireEvent.click(
|
|
4152
|
+
fireEvent.click(rendered.getByRole('button', { name: /inc/i }))
|
|
4153
4153
|
|
|
4154
|
-
await waitFor(() =>
|
|
4154
|
+
await waitFor(() => rendered.getByText('Data: selected 3')) // 0 + 3
|
|
4155
4155
|
|
|
4156
|
-
fireEvent.click(
|
|
4156
|
+
fireEvent.click(rendered.getByRole('button', { name: /forceUpdate/i }))
|
|
4157
4157
|
|
|
4158
|
-
await waitFor(() =>
|
|
4158
|
+
await waitFor(() => rendered.getByText('forceValue: 2'))
|
|
4159
4159
|
// data should still be 3 after an independent re-render
|
|
4160
|
-
await waitFor(() =>
|
|
4160
|
+
await waitFor(() => rendered.getByText('Data: selected 3'))
|
|
4161
4161
|
})
|
|
4162
4162
|
|
|
4163
4163
|
it('select should structurally share data', async () => {
|
|
@@ -4195,18 +4195,18 @@ describe('createQuery', () => {
|
|
|
4195
4195
|
)
|
|
4196
4196
|
}
|
|
4197
4197
|
|
|
4198
|
-
render(() => (
|
|
4198
|
+
const rendered = render(() => (
|
|
4199
4199
|
<QueryClientProvider client={queryClient}>
|
|
4200
4200
|
<Page />
|
|
4201
4201
|
</QueryClientProvider>
|
|
4202
4202
|
))
|
|
4203
|
-
await waitFor(() =>
|
|
4203
|
+
await waitFor(() => rendered.getByText('Data: [2,3]'))
|
|
4204
4204
|
expect(states).toHaveLength(1)
|
|
4205
4205
|
|
|
4206
|
-
fireEvent.click(
|
|
4206
|
+
fireEvent.click(rendered.getByRole('button', { name: /forceUpdate/i }))
|
|
4207
4207
|
|
|
4208
|
-
await waitFor(() =>
|
|
4209
|
-
await waitFor(() =>
|
|
4208
|
+
await waitFor(() => rendered.getByText('forceValue: 2'))
|
|
4209
|
+
await waitFor(() => rendered.getByText('Data: [2,3]'))
|
|
4210
4210
|
|
|
4211
4211
|
// effect should not be triggered again due to structural sharing
|
|
4212
4212
|
expect(states).toHaveLength(1)
|
|
@@ -4250,18 +4250,18 @@ describe('createQuery', () => {
|
|
|
4250
4250
|
)
|
|
4251
4251
|
}
|
|
4252
4252
|
|
|
4253
|
-
render(() => (
|
|
4253
|
+
const rendered = render(() => (
|
|
4254
4254
|
<QueryClientProvider client={queryClient}>
|
|
4255
4255
|
<Page />
|
|
4256
4256
|
</QueryClientProvider>
|
|
4257
4257
|
))
|
|
4258
|
-
await waitFor(() =>
|
|
4258
|
+
await waitFor(() => rendered.getByText('Data: [2,3]'))
|
|
4259
4259
|
expect(states).toHaveLength(1)
|
|
4260
4260
|
|
|
4261
|
-
fireEvent.click(
|
|
4261
|
+
fireEvent.click(rendered.getByRole('button', { name: /forceUpdate/i }))
|
|
4262
4262
|
|
|
4263
|
-
await waitFor(() =>
|
|
4264
|
-
await waitFor(() =>
|
|
4263
|
+
await waitFor(() => rendered.getByText('forceValue: 2'))
|
|
4264
|
+
await waitFor(() => rendered.getByText('Data: [2,3]'))
|
|
4265
4265
|
|
|
4266
4266
|
// effect should not be triggered again due to structural sharing
|
|
4267
4267
|
expect(states).toHaveLength(1)
|
|
@@ -4290,7 +4290,7 @@ describe('createQuery', () => {
|
|
|
4290
4290
|
)
|
|
4291
4291
|
}
|
|
4292
4292
|
|
|
4293
|
-
render(() => (
|
|
4293
|
+
const rendered = render(() => (
|
|
4294
4294
|
<QueryClientProvider client={queryClient}>
|
|
4295
4295
|
<Blink duration={5}>
|
|
4296
4296
|
<Page />
|
|
@@ -4298,7 +4298,7 @@ describe('createQuery', () => {
|
|
|
4298
4298
|
</QueryClientProvider>
|
|
4299
4299
|
))
|
|
4300
4300
|
|
|
4301
|
-
await waitFor(() =>
|
|
4301
|
+
await waitFor(() => rendered.getByText('off'))
|
|
4302
4302
|
|
|
4303
4303
|
expect(cancelFn).toHaveBeenCalled()
|
|
4304
4304
|
})
|
|
@@ -4332,7 +4332,7 @@ describe('createQuery', () => {
|
|
|
4332
4332
|
)
|
|
4333
4333
|
}
|
|
4334
4334
|
|
|
4335
|
-
render(() => (
|
|
4335
|
+
const rendered = render(() => (
|
|
4336
4336
|
<QueryClientProvider client={queryClient}>
|
|
4337
4337
|
<Blink duration={5}>
|
|
4338
4338
|
<Page limit={0} />
|
|
@@ -4343,7 +4343,7 @@ describe('createQuery', () => {
|
|
|
4343
4343
|
</QueryClientProvider>
|
|
4344
4344
|
))
|
|
4345
4345
|
|
|
4346
|
-
await waitFor(() =>
|
|
4346
|
+
await waitFor(() => rendered.getByText('off'))
|
|
4347
4347
|
await sleep(20)
|
|
4348
4348
|
|
|
4349
4349
|
await waitFor(() => expect(states).toHaveLength(4))
|
|
@@ -4454,18 +4454,18 @@ describe('createQuery', () => {
|
|
|
4454
4454
|
)
|
|
4455
4455
|
}
|
|
4456
4456
|
|
|
4457
|
-
render(() => (
|
|
4457
|
+
const rendered = render(() => (
|
|
4458
4458
|
<QueryClientProvider client={queryClient}>
|
|
4459
4459
|
<Page />
|
|
4460
4460
|
</QueryClientProvider>
|
|
4461
4461
|
))
|
|
4462
4462
|
|
|
4463
|
-
await waitFor(() =>
|
|
4464
|
-
fireEvent.click(
|
|
4463
|
+
await waitFor(() => rendered.getByText('data: 1'))
|
|
4464
|
+
fireEvent.click(rendered.getByRole('button', { name: /reset/i }))
|
|
4465
4465
|
|
|
4466
4466
|
await waitFor(() => expect(states.length).toBe(4))
|
|
4467
4467
|
|
|
4468
|
-
await waitFor(() =>
|
|
4468
|
+
await waitFor(() => rendered.getByText('data: 2'))
|
|
4469
4469
|
|
|
4470
4470
|
expect(count).toBe(2)
|
|
4471
4471
|
|
|
@@ -4532,19 +4532,19 @@ describe('createQuery', () => {
|
|
|
4532
4532
|
)
|
|
4533
4533
|
}
|
|
4534
4534
|
|
|
4535
|
-
render(() => (
|
|
4535
|
+
const rendered = render(() => (
|
|
4536
4536
|
<QueryClientProvider client={queryClient}>
|
|
4537
4537
|
<Page />
|
|
4538
4538
|
</QueryClientProvider>
|
|
4539
4539
|
))
|
|
4540
4540
|
|
|
4541
|
-
await waitFor(() =>
|
|
4542
|
-
fireEvent.click(
|
|
4541
|
+
await waitFor(() => rendered.getByText('data: null'))
|
|
4542
|
+
fireEvent.click(rendered.getByRole('button', { name: /refetch/i }))
|
|
4543
4543
|
|
|
4544
|
-
await waitFor(() =>
|
|
4545
|
-
fireEvent.click(
|
|
4544
|
+
await waitFor(() => rendered.getByText('data: 1'))
|
|
4545
|
+
fireEvent.click(rendered.getByRole('button', { name: /reset/i }))
|
|
4546
4546
|
|
|
4547
|
-
await waitFor(() =>
|
|
4547
|
+
await waitFor(() => rendered.getByText('data: null'))
|
|
4548
4548
|
await waitFor(() => expect(states.length).toBe(4))
|
|
4549
4549
|
|
|
4550
4550
|
expect(count).toBe(1)
|
|
@@ -4650,26 +4650,26 @@ describe('createQuery', () => {
|
|
|
4650
4650
|
)
|
|
4651
4651
|
}
|
|
4652
4652
|
|
|
4653
|
-
render(() => (
|
|
4653
|
+
const rendered = render(() => (
|
|
4654
4654
|
<QueryClientProvider client={queryClient}>
|
|
4655
4655
|
<App />
|
|
4656
4656
|
</QueryClientProvider>
|
|
4657
4657
|
))
|
|
4658
4658
|
|
|
4659
4659
|
// initial state check
|
|
4660
|
-
|
|
4660
|
+
rendered.getByText('status: pending')
|
|
4661
4661
|
|
|
4662
4662
|
// // render error state component
|
|
4663
|
-
await waitFor(() =>
|
|
4663
|
+
await waitFor(() => rendered.getByText('error'))
|
|
4664
4664
|
expect(queryFn).toBeCalledTimes(1)
|
|
4665
4665
|
|
|
4666
4666
|
// change to enabled to false
|
|
4667
|
-
fireEvent.click(
|
|
4668
|
-
await waitFor(() =>
|
|
4667
|
+
fireEvent.click(rendered.getByLabelText('retry'))
|
|
4668
|
+
await waitFor(() => rendered.getByText('error'))
|
|
4669
4669
|
expect(queryFn).toBeCalledTimes(1)
|
|
4670
4670
|
|
|
4671
4671
|
// // change to enabled to true
|
|
4672
|
-
fireEvent.click(
|
|
4672
|
+
fireEvent.click(rendered.getByLabelText('retry'))
|
|
4673
4673
|
expect(queryFn).toBeCalledTimes(2)
|
|
4674
4674
|
})
|
|
4675
4675
|
|
|
@@ -4717,25 +4717,25 @@ describe('createQuery', () => {
|
|
|
4717
4717
|
)
|
|
4718
4718
|
}
|
|
4719
4719
|
|
|
4720
|
-
render(() => (
|
|
4720
|
+
const rendered = render(() => (
|
|
4721
4721
|
<QueryClientProvider client={queryClient}>
|
|
4722
4722
|
<App />
|
|
4723
4723
|
</QueryClientProvider>
|
|
4724
4724
|
))
|
|
4725
4725
|
|
|
4726
4726
|
// initial state check
|
|
4727
|
-
|
|
4727
|
+
rendered.getByText('status: pending')
|
|
4728
4728
|
|
|
4729
4729
|
// render error state component
|
|
4730
|
-
await waitFor(() =>
|
|
4730
|
+
await waitFor(() => rendered.getByText('error'))
|
|
4731
4731
|
|
|
4732
4732
|
// change to unmount query
|
|
4733
|
-
fireEvent.click(
|
|
4734
|
-
await waitFor(() =>
|
|
4733
|
+
fireEvent.click(rendered.getByLabelText('change'))
|
|
4734
|
+
await waitFor(() => rendered.getByText('rendered'))
|
|
4735
4735
|
|
|
4736
4736
|
// change to mount new query
|
|
4737
|
-
fireEvent.click(
|
|
4738
|
-
await waitFor(() =>
|
|
4737
|
+
fireEvent.click(rendered.getByLabelText('change'))
|
|
4738
|
+
await waitFor(() => rendered.getByText('error'))
|
|
4739
4739
|
})
|
|
4740
4740
|
|
|
4741
4741
|
it('should refetch when query key changed when switching between erroneous queries', async () => {
|
|
@@ -4777,27 +4777,27 @@ describe('createQuery', () => {
|
|
|
4777
4777
|
)
|
|
4778
4778
|
}
|
|
4779
4779
|
|
|
4780
|
-
render(() => (
|
|
4780
|
+
const rendered = render(() => (
|
|
4781
4781
|
<QueryClientProvider client={queryClient}>
|
|
4782
4782
|
<App />
|
|
4783
4783
|
</QueryClientProvider>
|
|
4784
4784
|
))
|
|
4785
4785
|
|
|
4786
4786
|
// initial state check
|
|
4787
|
-
|
|
4787
|
+
rendered.getByText('status: fetching')
|
|
4788
4788
|
|
|
4789
4789
|
// render error state component
|
|
4790
|
-
await waitFor(() =>
|
|
4790
|
+
await waitFor(() => rendered.getByText('error'))
|
|
4791
4791
|
|
|
4792
4792
|
// change to mount second query
|
|
4793
|
-
fireEvent.click(
|
|
4794
|
-
await waitFor(() =>
|
|
4795
|
-
await waitFor(() =>
|
|
4793
|
+
fireEvent.click(rendered.getByLabelText('change'))
|
|
4794
|
+
await waitFor(() => rendered.getByText('status: fetching'))
|
|
4795
|
+
await waitFor(() => rendered.getByText('error'))
|
|
4796
4796
|
|
|
4797
4797
|
// change to mount first query again
|
|
4798
|
-
fireEvent.click(
|
|
4799
|
-
await waitFor(() =>
|
|
4800
|
-
await waitFor(() =>
|
|
4798
|
+
fireEvent.click(rendered.getByLabelText('change'))
|
|
4799
|
+
await waitFor(() => rendered.getByText('status: fetching'))
|
|
4800
|
+
await waitFor(() => rendered.getByText('error'))
|
|
4801
4801
|
})
|
|
4802
4802
|
|
|
4803
4803
|
it('should have no error in pending state when refetching after error occurred', async () => {
|
|
@@ -4840,16 +4840,16 @@ describe('createQuery', () => {
|
|
|
4840
4840
|
)
|
|
4841
4841
|
}
|
|
4842
4842
|
|
|
4843
|
-
render(() => (
|
|
4843
|
+
const rendered = render(() => (
|
|
4844
4844
|
<QueryClientProvider client={queryClient}>
|
|
4845
4845
|
<Page />
|
|
4846
4846
|
</QueryClientProvider>
|
|
4847
4847
|
))
|
|
4848
4848
|
|
|
4849
|
-
await waitFor(() =>
|
|
4849
|
+
await waitFor(() => rendered.getByText('error'))
|
|
4850
4850
|
|
|
4851
|
-
fireEvent.click(
|
|
4852
|
-
await waitFor(() =>
|
|
4851
|
+
fireEvent.click(rendered.getByRole('button', { name: 'refetch' }))
|
|
4852
|
+
await waitFor(() => rendered.getByText('data: 5'))
|
|
4853
4853
|
|
|
4854
4854
|
await waitFor(() => expect(states.length).toBe(4))
|
|
4855
4855
|
|
|
@@ -4908,7 +4908,7 @@ describe('createQuery', () => {
|
|
|
4908
4908
|
)
|
|
4909
4909
|
}
|
|
4910
4910
|
|
|
4911
|
-
render(() => (
|
|
4911
|
+
const rendered = render(() => (
|
|
4912
4912
|
<QueryClientProvider client={queryClient}>
|
|
4913
4913
|
<Page />
|
|
4914
4914
|
</QueryClientProvider>
|
|
@@ -4916,14 +4916,16 @@ describe('createQuery', () => {
|
|
|
4916
4916
|
|
|
4917
4917
|
window.dispatchEvent(new Event('offline'))
|
|
4918
4918
|
|
|
4919
|
-
await waitFor(() =>
|
|
4919
|
+
await waitFor(() => rendered.getByText('status: pending, isPaused: true'))
|
|
4920
4920
|
|
|
4921
4921
|
onlineMock.mockRestore()
|
|
4922
4922
|
window.dispatchEvent(new Event('online'))
|
|
4923
4923
|
|
|
4924
|
-
await waitFor(() =>
|
|
4924
|
+
await waitFor(() =>
|
|
4925
|
+
rendered.getByText('status: success, isPaused: false'),
|
|
4926
|
+
)
|
|
4925
4927
|
await waitFor(() => {
|
|
4926
|
-
expect(
|
|
4928
|
+
expect(rendered.getByText('data: data')).toBeInTheDocument()
|
|
4927
4929
|
})
|
|
4928
4930
|
|
|
4929
4931
|
expect(states).toEqual(['paused', 'fetching', 'idle'])
|
|
@@ -4960,41 +4962,43 @@ describe('createQuery', () => {
|
|
|
4960
4962
|
)
|
|
4961
4963
|
}
|
|
4962
4964
|
|
|
4963
|
-
render(() => (
|
|
4965
|
+
const rendered = render(() => (
|
|
4964
4966
|
<QueryClientProvider client={queryClient}>
|
|
4965
4967
|
<Page />
|
|
4966
4968
|
</QueryClientProvider>
|
|
4967
4969
|
))
|
|
4968
4970
|
|
|
4969
|
-
await waitFor(() =>
|
|
4971
|
+
await waitFor(() => rendered.getByText('data: data1'))
|
|
4970
4972
|
|
|
4971
4973
|
const onlineMock = mockOnlineManagerIsOnline(false)
|
|
4972
4974
|
window.dispatchEvent(new Event('offline'))
|
|
4973
|
-
fireEvent.click(
|
|
4975
|
+
fireEvent.click(rendered.getByRole('button', { name: /invalidate/i }))
|
|
4974
4976
|
|
|
4975
4977
|
await waitFor(() =>
|
|
4976
|
-
|
|
4978
|
+
rendered.getByText(
|
|
4977
4979
|
'status: success, fetchStatus: paused, failureCount: 0',
|
|
4978
4980
|
),
|
|
4979
4981
|
)
|
|
4980
|
-
await waitFor(() =>
|
|
4982
|
+
await waitFor(() => rendered.getByText('failureReason: null'))
|
|
4981
4983
|
|
|
4982
4984
|
onlineMock.mockRestore()
|
|
4983
4985
|
window.dispatchEvent(new Event('online'))
|
|
4984
4986
|
|
|
4985
4987
|
await waitFor(() =>
|
|
4986
|
-
|
|
4988
|
+
rendered.getByText(
|
|
4987
4989
|
'status: success, fetchStatus: fetching, failureCount: 0',
|
|
4988
4990
|
),
|
|
4989
4991
|
)
|
|
4990
|
-
await waitFor(() =>
|
|
4992
|
+
await waitFor(() => rendered.getByText('failureReason: null'))
|
|
4991
4993
|
await waitFor(() =>
|
|
4992
|
-
|
|
4994
|
+
rendered.getByText(
|
|
4995
|
+
'status: success, fetchStatus: idle, failureCount: 0',
|
|
4996
|
+
),
|
|
4993
4997
|
)
|
|
4994
|
-
await waitFor(() =>
|
|
4998
|
+
await waitFor(() => rendered.getByText('failureReason: null'))
|
|
4995
4999
|
|
|
4996
5000
|
await waitFor(() => {
|
|
4997
|
-
expect(
|
|
5001
|
+
expect(rendered.getByText('data: data2')).toBeInTheDocument()
|
|
4998
5002
|
})
|
|
4999
5003
|
})
|
|
5000
5004
|
|
|
@@ -5027,26 +5031,26 @@ describe('createQuery', () => {
|
|
|
5027
5031
|
)
|
|
5028
5032
|
}
|
|
5029
5033
|
|
|
5030
|
-
render(() => (
|
|
5034
|
+
const rendered = render(() => (
|
|
5031
5035
|
<QueryClientProvider client={queryClient}>
|
|
5032
5036
|
<Page />
|
|
5033
5037
|
</QueryClientProvider>
|
|
5034
5038
|
))
|
|
5035
5039
|
|
|
5036
|
-
await waitFor(() =>
|
|
5040
|
+
await waitFor(() => rendered.getByText('data: data1'))
|
|
5037
5041
|
|
|
5038
5042
|
const onlineMock = mockOnlineManagerIsOnline(false)
|
|
5039
|
-
fireEvent.click(
|
|
5043
|
+
fireEvent.click(rendered.getByRole('button', { name: /invalidate/i }))
|
|
5040
5044
|
|
|
5041
5045
|
await waitFor(() =>
|
|
5042
|
-
|
|
5046
|
+
rendered.getByText('status: success, fetchStatus: paused'),
|
|
5043
5047
|
)
|
|
5044
5048
|
|
|
5045
5049
|
window.dispatchEvent(new Event('visibilitychange'))
|
|
5046
5050
|
await sleep(15)
|
|
5047
5051
|
|
|
5048
5052
|
await waitFor(() =>
|
|
5049
|
-
expect(
|
|
5053
|
+
expect(rendered.queryByText('data: data2')).not.toBeInTheDocument(),
|
|
5050
5054
|
)
|
|
5051
5055
|
expect(count).toBe(1)
|
|
5052
5056
|
onlineMock.mockRestore()
|
|
@@ -5083,23 +5087,23 @@ describe('createQuery', () => {
|
|
|
5083
5087
|
|
|
5084
5088
|
const onlineMock = mockOnlineManagerIsOnline(false)
|
|
5085
5089
|
|
|
5086
|
-
render(() => (
|
|
5090
|
+
const rendered = render(() => (
|
|
5087
5091
|
<QueryClientProvider client={queryClient}>
|
|
5088
5092
|
<Page />
|
|
5089
5093
|
</QueryClientProvider>
|
|
5090
5094
|
))
|
|
5091
5095
|
|
|
5092
5096
|
await waitFor(() =>
|
|
5093
|
-
|
|
5097
|
+
rendered.getByText('status: pending, fetchStatus: paused'),
|
|
5094
5098
|
)
|
|
5095
5099
|
|
|
5096
|
-
fireEvent.click(
|
|
5100
|
+
fireEvent.click(rendered.getByRole('button', { name: /invalidate/i }))
|
|
5097
5101
|
|
|
5098
5102
|
await sleep(15)
|
|
5099
5103
|
|
|
5100
5104
|
// invalidation should not trigger a refetch
|
|
5101
5105
|
await waitFor(() =>
|
|
5102
|
-
|
|
5106
|
+
rendered.getByText('status: pending, fetchStatus: paused'),
|
|
5103
5107
|
)
|
|
5104
5108
|
|
|
5105
5109
|
expect(count).toBe(0)
|
|
@@ -5138,26 +5142,26 @@ describe('createQuery', () => {
|
|
|
5138
5142
|
|
|
5139
5143
|
const onlineMock = mockOnlineManagerIsOnline(false)
|
|
5140
5144
|
|
|
5141
|
-
render(() => (
|
|
5145
|
+
const rendered = render(() => (
|
|
5142
5146
|
<QueryClientProvider client={queryClient}>
|
|
5143
5147
|
<Page />
|
|
5144
5148
|
</QueryClientProvider>
|
|
5145
5149
|
))
|
|
5146
5150
|
|
|
5147
5151
|
await waitFor(() =>
|
|
5148
|
-
|
|
5152
|
+
rendered.getByText('status: success, fetchStatus: paused'),
|
|
5149
5153
|
)
|
|
5150
5154
|
await waitFor(() => {
|
|
5151
|
-
expect(
|
|
5155
|
+
expect(rendered.getByText('data: initial')).toBeInTheDocument()
|
|
5152
5156
|
})
|
|
5153
5157
|
|
|
5154
|
-
fireEvent.click(
|
|
5158
|
+
fireEvent.click(rendered.getByRole('button', { name: /invalidate/i }))
|
|
5155
5159
|
|
|
5156
5160
|
await sleep(15)
|
|
5157
5161
|
|
|
5158
5162
|
// invalidation should not trigger a refetch
|
|
5159
5163
|
await waitFor(() =>
|
|
5160
|
-
|
|
5164
|
+
rendered.getByText('status: success, fetchStatus: paused'),
|
|
5161
5165
|
)
|
|
5162
5166
|
|
|
5163
5167
|
expect(count).toBe(0)
|
|
@@ -5196,7 +5200,7 @@ describe('createQuery', () => {
|
|
|
5196
5200
|
|
|
5197
5201
|
const onlineMock = mockOnlineManagerIsOnline(false)
|
|
5198
5202
|
|
|
5199
|
-
render(() => (
|
|
5203
|
+
const rendered = render(() => (
|
|
5200
5204
|
<QueryClientProvider client={queryClient}>
|
|
5201
5205
|
<Page />
|
|
5202
5206
|
</QueryClientProvider>
|
|
@@ -5205,19 +5209,19 @@ describe('createQuery', () => {
|
|
|
5205
5209
|
window.dispatchEvent(new Event('offline'))
|
|
5206
5210
|
|
|
5207
5211
|
await waitFor(() =>
|
|
5208
|
-
|
|
5212
|
+
rendered.getByText('status: success, fetchStatus: paused'),
|
|
5209
5213
|
)
|
|
5210
5214
|
await waitFor(() => {
|
|
5211
|
-
expect(
|
|
5215
|
+
expect(rendered.getByText('data: initial')).toBeInTheDocument()
|
|
5212
5216
|
})
|
|
5213
5217
|
|
|
5214
5218
|
// triggers one pause
|
|
5215
|
-
fireEvent.click(
|
|
5219
|
+
fireEvent.click(rendered.getByRole('button', { name: /invalidate/i }))
|
|
5216
5220
|
|
|
5217
5221
|
await sleep(15)
|
|
5218
5222
|
|
|
5219
5223
|
await waitFor(() =>
|
|
5220
|
-
|
|
5224
|
+
rendered.getByText('status: success, fetchStatus: paused'),
|
|
5221
5225
|
)
|
|
5222
5226
|
|
|
5223
5227
|
// triggers a second pause
|
|
@@ -5227,10 +5231,10 @@ describe('createQuery', () => {
|
|
|
5227
5231
|
window.dispatchEvent(new Event('online'))
|
|
5228
5232
|
|
|
5229
5233
|
await waitFor(() =>
|
|
5230
|
-
|
|
5234
|
+
rendered.getByText('status: success, fetchStatus: idle'),
|
|
5231
5235
|
)
|
|
5232
5236
|
await waitFor(() => {
|
|
5233
|
-
expect(
|
|
5237
|
+
expect(rendered.getByText('data: data1')).toBeInTheDocument()
|
|
5234
5238
|
})
|
|
5235
5239
|
|
|
5236
5240
|
expect(count).toBe(1)
|
|
@@ -5263,18 +5267,18 @@ describe('createQuery', () => {
|
|
|
5263
5267
|
)
|
|
5264
5268
|
}
|
|
5265
5269
|
|
|
5266
|
-
render(() => (
|
|
5270
|
+
const rendered = render(() => (
|
|
5267
5271
|
<QueryClientProvider client={queryClient}>
|
|
5268
5272
|
<Page />
|
|
5269
5273
|
</QueryClientProvider>
|
|
5270
5274
|
))
|
|
5271
5275
|
|
|
5272
5276
|
await waitFor(() =>
|
|
5273
|
-
|
|
5277
|
+
rendered.getByText(
|
|
5274
5278
|
'status: pending, fetchStatus: fetching, failureCount: 1',
|
|
5275
5279
|
),
|
|
5276
5280
|
)
|
|
5277
|
-
await waitFor(() =>
|
|
5281
|
+
await waitFor(() => rendered.getByText('failureReason: failed1'))
|
|
5278
5282
|
|
|
5279
5283
|
window.dispatchEvent(new Event('offline'))
|
|
5280
5284
|
const onlineMock = mockOnlineManagerIsOnline(false)
|
|
@@ -5282,11 +5286,11 @@ describe('createQuery', () => {
|
|
|
5282
5286
|
await sleep(20)
|
|
5283
5287
|
|
|
5284
5288
|
await waitFor(() =>
|
|
5285
|
-
|
|
5289
|
+
rendered.getByText(
|
|
5286
5290
|
'status: pending, fetchStatus: paused, failureCount: 1',
|
|
5287
5291
|
),
|
|
5288
5292
|
)
|
|
5289
|
-
await waitFor(() =>
|
|
5293
|
+
await waitFor(() => rendered.getByText('failureReason: failed1'))
|
|
5290
5294
|
|
|
5291
5295
|
expect(count).toBe(1)
|
|
5292
5296
|
|
|
@@ -5294,9 +5298,9 @@ describe('createQuery', () => {
|
|
|
5294
5298
|
window.dispatchEvent(new Event('online'))
|
|
5295
5299
|
|
|
5296
5300
|
await waitFor(() =>
|
|
5297
|
-
|
|
5301
|
+
rendered.getByText('status: error, fetchStatus: idle, failureCount: 3'),
|
|
5298
5302
|
)
|
|
5299
|
-
await waitFor(() =>
|
|
5303
|
+
await waitFor(() => rendered.getByText('failureReason: failed3'))
|
|
5300
5304
|
|
|
5301
5305
|
expect(count).toBe(3)
|
|
5302
5306
|
})
|
|
@@ -5338,7 +5342,7 @@ describe('createQuery', () => {
|
|
|
5338
5342
|
|
|
5339
5343
|
const onlineMock = mockOnlineManagerIsOnline(false)
|
|
5340
5344
|
|
|
5341
|
-
render(() => (
|
|
5345
|
+
const rendered = render(() => (
|
|
5342
5346
|
<QueryClientProvider client={queryClient}>
|
|
5343
5347
|
<Page />
|
|
5344
5348
|
</QueryClientProvider>
|
|
@@ -5347,10 +5351,10 @@ describe('createQuery', () => {
|
|
|
5347
5351
|
window.dispatchEvent(new Event('offline'))
|
|
5348
5352
|
|
|
5349
5353
|
await waitFor(() =>
|
|
5350
|
-
|
|
5354
|
+
rendered.getByText('status: pending, fetchStatus: paused'),
|
|
5351
5355
|
)
|
|
5352
5356
|
|
|
5353
|
-
fireEvent.click(
|
|
5357
|
+
fireEvent.click(rendered.getByRole('button', { name: /hide/i }))
|
|
5354
5358
|
|
|
5355
5359
|
onlineMock.mockRestore()
|
|
5356
5360
|
window.dispatchEvent(new Event('online'))
|
|
@@ -5397,20 +5401,20 @@ describe('createQuery', () => {
|
|
|
5397
5401
|
|
|
5398
5402
|
const onlineMock = mockOnlineManagerIsOnline(false)
|
|
5399
5403
|
|
|
5400
|
-
render(() => (
|
|
5404
|
+
const rendered = render(() => (
|
|
5401
5405
|
<QueryClientProvider client={queryClient}>
|
|
5402
5406
|
<Page />
|
|
5403
5407
|
</QueryClientProvider>
|
|
5404
5408
|
))
|
|
5405
5409
|
|
|
5406
5410
|
await waitFor(() =>
|
|
5407
|
-
|
|
5411
|
+
rendered.getByText('status: pending, fetchStatus: paused'),
|
|
5408
5412
|
)
|
|
5409
5413
|
|
|
5410
|
-
fireEvent.click(
|
|
5414
|
+
fireEvent.click(rendered.getByRole('button', { name: /cancel/i }))
|
|
5411
5415
|
|
|
5412
5416
|
await waitFor(() =>
|
|
5413
|
-
|
|
5417
|
+
rendered.getByText('status: pending, fetchStatus: idle'),
|
|
5414
5418
|
)
|
|
5415
5419
|
|
|
5416
5420
|
expect(count).toBe(0)
|
|
@@ -5421,7 +5425,7 @@ describe('createQuery', () => {
|
|
|
5421
5425
|
await sleep(15)
|
|
5422
5426
|
|
|
5423
5427
|
await waitFor(() =>
|
|
5424
|
-
|
|
5428
|
+
rendered.getByText('status: pending, fetchStatus: idle'),
|
|
5425
5429
|
)
|
|
5426
5430
|
|
|
5427
5431
|
expect(count).toBe(0)
|
|
@@ -5469,25 +5473,25 @@ describe('createQuery', () => {
|
|
|
5469
5473
|
)
|
|
5470
5474
|
}
|
|
5471
5475
|
|
|
5472
|
-
render(() => (
|
|
5476
|
+
const rendered = render(() => (
|
|
5473
5477
|
<QueryClientProvider client={queryClient}>
|
|
5474
5478
|
<Page />
|
|
5475
5479
|
</QueryClientProvider>
|
|
5476
5480
|
))
|
|
5477
5481
|
|
|
5478
5482
|
await waitFor(() =>
|
|
5479
|
-
|
|
5483
|
+
rendered.getByText('status: success, fetchStatus: idle'),
|
|
5480
5484
|
)
|
|
5481
5485
|
|
|
5482
5486
|
const onlineMock = mockOnlineManagerIsOnline(false)
|
|
5483
5487
|
|
|
5484
|
-
fireEvent.click(
|
|
5488
|
+
fireEvent.click(rendered.getByRole('button', { name: /invalidate/i }))
|
|
5485
5489
|
|
|
5486
5490
|
await waitFor(() =>
|
|
5487
|
-
|
|
5491
|
+
rendered.getByText('status: success, fetchStatus: paused'),
|
|
5488
5492
|
)
|
|
5489
5493
|
|
|
5490
|
-
fireEvent.click(
|
|
5494
|
+
fireEvent.click(rendered.getByRole('button', { name: /hide/i }))
|
|
5491
5495
|
|
|
5492
5496
|
await sleep(15)
|
|
5493
5497
|
|
|
@@ -5535,16 +5539,18 @@ describe('createQuery', () => {
|
|
|
5535
5539
|
)
|
|
5536
5540
|
}
|
|
5537
5541
|
|
|
5538
|
-
render(() => (
|
|
5542
|
+
const rendered = render(() => (
|
|
5539
5543
|
<QueryClientProvider client={queryClient}>
|
|
5540
5544
|
<Page />
|
|
5541
5545
|
</QueryClientProvider>
|
|
5542
5546
|
))
|
|
5543
5547
|
|
|
5544
|
-
await waitFor(() =>
|
|
5548
|
+
await waitFor(() =>
|
|
5549
|
+
rendered.getByText('status: success, isPaused: false'),
|
|
5550
|
+
)
|
|
5545
5551
|
|
|
5546
5552
|
await waitFor(() => {
|
|
5547
|
-
expect(
|
|
5553
|
+
expect(rendered.getByText('data: data 1')).toBeInTheDocument()
|
|
5548
5554
|
})
|
|
5549
5555
|
|
|
5550
5556
|
onlineMock.mockRestore()
|
|
@@ -5581,16 +5587,16 @@ describe('createQuery', () => {
|
|
|
5581
5587
|
)
|
|
5582
5588
|
}
|
|
5583
5589
|
|
|
5584
|
-
render(() => (
|
|
5590
|
+
const rendered = render(() => (
|
|
5585
5591
|
<QueryClientProvider client={queryClient}>
|
|
5586
5592
|
<Page />
|
|
5587
5593
|
</QueryClientProvider>
|
|
5588
5594
|
))
|
|
5589
5595
|
|
|
5590
|
-
await waitFor(() =>
|
|
5596
|
+
await waitFor(() => rendered.getByText('status: error, isPaused: false'))
|
|
5591
5597
|
|
|
5592
5598
|
await waitFor(() => {
|
|
5593
|
-
expect(
|
|
5599
|
+
expect(rendered.getByText('error: error 2')).toBeInTheDocument()
|
|
5594
5600
|
})
|
|
5595
5601
|
|
|
5596
5602
|
expect(count).toBe(2)
|
|
@@ -5630,7 +5636,7 @@ describe('createQuery', () => {
|
|
|
5630
5636
|
)
|
|
5631
5637
|
}
|
|
5632
5638
|
|
|
5633
|
-
render(() => (
|
|
5639
|
+
const rendered = render(() => (
|
|
5634
5640
|
<QueryClientProvider client={queryClient}>
|
|
5635
5641
|
<Page />
|
|
5636
5642
|
</QueryClientProvider>
|
|
@@ -5639,11 +5645,11 @@ describe('createQuery', () => {
|
|
|
5639
5645
|
window.dispatchEvent(new Event('offline'))
|
|
5640
5646
|
|
|
5641
5647
|
await waitFor(() =>
|
|
5642
|
-
|
|
5648
|
+
rendered.getByText(
|
|
5643
5649
|
'status: pending, fetchStatus: paused, failureCount: 1',
|
|
5644
5650
|
),
|
|
5645
5651
|
)
|
|
5646
|
-
await waitFor(() =>
|
|
5652
|
+
await waitFor(() => rendered.getByText('failureReason: failed1'))
|
|
5647
5653
|
|
|
5648
5654
|
expect(count).toBe(1)
|
|
5649
5655
|
|
|
@@ -5651,9 +5657,9 @@ describe('createQuery', () => {
|
|
|
5651
5657
|
window.dispatchEvent(new Event('online'))
|
|
5652
5658
|
|
|
5653
5659
|
await waitFor(() =>
|
|
5654
|
-
|
|
5660
|
+
rendered.getByText('status: error, fetchStatus: idle, failureCount: 3'),
|
|
5655
5661
|
)
|
|
5656
|
-
await waitFor(() =>
|
|
5662
|
+
await waitFor(() => rendered.getByText('failureReason: failed3'))
|
|
5657
5663
|
|
|
5658
5664
|
expect(count).toBe(3)
|
|
5659
5665
|
})
|
|
@@ -5723,17 +5729,17 @@ describe('createQuery', () => {
|
|
|
5723
5729
|
)
|
|
5724
5730
|
}
|
|
5725
5731
|
|
|
5726
|
-
render(() => (
|
|
5732
|
+
const rendered = render(() => (
|
|
5727
5733
|
<QueryClientProvider client={queryClient}>
|
|
5728
5734
|
<Page />
|
|
5729
5735
|
</QueryClientProvider>
|
|
5730
5736
|
))
|
|
5731
5737
|
|
|
5732
|
-
await waitFor(() =>
|
|
5733
|
-
fireEvent.click(
|
|
5734
|
-
await waitFor(() =>
|
|
5738
|
+
await waitFor(() => rendered.getByText('data: data'))
|
|
5739
|
+
fireEvent.click(rendered.getByRole('button', { name: /setQueryData/i }))
|
|
5740
|
+
await waitFor(() => rendered.getByText('data: newData'))
|
|
5735
5741
|
await waitFor(() => {
|
|
5736
|
-
expect(
|
|
5742
|
+
expect(rendered.getByText('dataUpdatedAt: 100')).toBeInTheDocument()
|
|
5737
5743
|
})
|
|
5738
5744
|
})
|
|
5739
5745
|
|
|
@@ -5756,17 +5762,19 @@ describe('createQuery', () => {
|
|
|
5756
5762
|
</div>
|
|
5757
5763
|
)
|
|
5758
5764
|
}
|
|
5759
|
-
|
|
5765
|
+
|
|
5766
|
+
const rendered = render(() => (
|
|
5760
5767
|
<QueryClientProvider client={queryClient}>
|
|
5761
5768
|
<Page />
|
|
5762
5769
|
</QueryClientProvider>
|
|
5763
5770
|
))
|
|
5764
|
-
|
|
5765
|
-
|
|
5771
|
+
|
|
5772
|
+
const fetchBtn = rendered.getByRole('button', { name: 'refetch' })
|
|
5773
|
+
await waitFor(() => rendered.getByText('data: 1'))
|
|
5766
5774
|
fireEvent.click(fetchBtn)
|
|
5767
|
-
await waitFor(() =>
|
|
5775
|
+
await waitFor(() => rendered.getByText('data: 2'))
|
|
5768
5776
|
fireEvent.click(fetchBtn)
|
|
5769
|
-
await waitFor(() =>
|
|
5777
|
+
await waitFor(() => rendered.getByText('data: 3'))
|
|
5770
5778
|
})
|
|
5771
5779
|
|
|
5772
5780
|
it('should use provided custom queryClient', async () => {
|
|
@@ -5787,8 +5795,8 @@ describe('createQuery', () => {
|
|
|
5787
5795
|
)
|
|
5788
5796
|
}
|
|
5789
5797
|
|
|
5790
|
-
render(() => <Page />)
|
|
5798
|
+
const rendered = render(() => <Page />)
|
|
5791
5799
|
|
|
5792
|
-
await waitFor(() =>
|
|
5800
|
+
await waitFor(() => rendered.getByText('Status: custom client'))
|
|
5793
5801
|
})
|
|
5794
5802
|
})
|