@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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/solid-query",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.15.0",
|
|
4
4
|
"description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid",
|
|
5
5
|
"author": "tannerlinsley",
|
|
6
6
|
"license": "MIT",
|
|
@@ -47,12 +47,12 @@
|
|
|
47
47
|
"src"
|
|
48
48
|
],
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"solid-js": "^1.8.
|
|
50
|
+
"solid-js": "^1.8.7",
|
|
51
51
|
"@tanstack/query-core": "5.14.2"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"tsup-preset-solid": "^2.
|
|
55
|
-
"vite-plugin-solid": "^2.
|
|
54
|
+
"tsup-preset-solid": "^2.2.0",
|
|
55
|
+
"vite-plugin-solid": "^2.8.0"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"solid-js": "^1.6.0"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it, vi } from 'vitest'
|
|
2
|
-
import { render,
|
|
2
|
+
import { render, waitFor } from '@solidjs/testing-library'
|
|
3
3
|
import { QueryCache } from '@tanstack/query-core'
|
|
4
4
|
import { QueryClientProvider, createQuery, useQueryClient } from '..'
|
|
5
5
|
import { createQueryClient, queryKey, sleep } from './utils'
|
|
@@ -27,14 +27,14 @@ describe('QueryClientProvider', () => {
|
|
|
27
27
|
)
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
render(() => (
|
|
30
|
+
const rendered = render(() => (
|
|
31
31
|
<QueryClientProvider client={queryClient}>
|
|
32
32
|
<Page />
|
|
33
33
|
</QueryClientProvider>
|
|
34
34
|
))
|
|
35
35
|
|
|
36
36
|
await waitFor(() => {
|
|
37
|
-
return
|
|
37
|
+
return rendered.getByText('test')
|
|
38
38
|
})
|
|
39
39
|
|
|
40
40
|
expect(queryCache.find({ queryKey: key })).toBeDefined()
|
|
@@ -81,7 +81,7 @@ describe('QueryClientProvider', () => {
|
|
|
81
81
|
)
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
render(() => (
|
|
84
|
+
const rendered = render(() => (
|
|
85
85
|
<>
|
|
86
86
|
<QueryClientProvider client={queryClient1}>
|
|
87
87
|
<Page1 />
|
|
@@ -92,8 +92,8 @@ describe('QueryClientProvider', () => {
|
|
|
92
92
|
</>
|
|
93
93
|
))
|
|
94
94
|
|
|
95
|
-
await waitFor(() =>
|
|
96
|
-
await waitFor(() =>
|
|
95
|
+
await waitFor(() => rendered.getByText('test1'))
|
|
96
|
+
await waitFor(() => rendered.getByText('test2'))
|
|
97
97
|
|
|
98
98
|
expect(queryCache1.find({ queryKey: key1 })).toBeDefined()
|
|
99
99
|
expect(queryCache1.find({ queryKey: key2 })).not.toBeDefined()
|
|
@@ -130,13 +130,13 @@ describe('QueryClientProvider', () => {
|
|
|
130
130
|
)
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
render(() => (
|
|
133
|
+
const rendered = render(() => (
|
|
134
134
|
<QueryClientProvider client={queryClient}>
|
|
135
135
|
<Page />
|
|
136
136
|
</QueryClientProvider>
|
|
137
137
|
))
|
|
138
138
|
|
|
139
|
-
await waitFor(() =>
|
|
139
|
+
await waitFor(() => rendered.getByText('test'))
|
|
140
140
|
|
|
141
141
|
expect(queryCache.find({ queryKey: key })).toBeDefined()
|
|
142
142
|
expect(queryCache.find({ queryKey: key })?.options.gcTime).toBe(Infinity)
|
|
@@ -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
|
For,
|
|
@@ -242,20 +242,20 @@ describe('useInfiniteQuery', () => {
|
|
|
242
242
|
)
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
-
render(() => (
|
|
245
|
+
const rendered = render(() => (
|
|
246
246
|
<QueryClientProvider client={queryClient}>
|
|
247
247
|
<Page />
|
|
248
248
|
</QueryClientProvider>
|
|
249
249
|
))
|
|
250
250
|
|
|
251
|
-
await waitFor(() =>
|
|
252
|
-
fireEvent.click(
|
|
251
|
+
await waitFor(() => rendered.getByText('data: 0-desc'))
|
|
252
|
+
fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i }))
|
|
253
253
|
|
|
254
|
-
await waitFor(() =>
|
|
255
|
-
fireEvent.click(
|
|
254
|
+
await waitFor(() => rendered.getByText('data: 0-desc,1-desc'))
|
|
255
|
+
fireEvent.click(rendered.getByRole('button', { name: /order/i }))
|
|
256
256
|
|
|
257
|
-
await waitFor(() =>
|
|
258
|
-
await waitFor(() =>
|
|
257
|
+
await waitFor(() => rendered.getByText('data: 0-asc'))
|
|
258
|
+
await waitFor(() => rendered.getByText('isFetching: false'))
|
|
259
259
|
await waitFor(() => expect(states.length).toBe(6))
|
|
260
260
|
|
|
261
261
|
expect(states[0]).toMatchObject({
|
|
@@ -436,16 +436,16 @@ describe('useInfiniteQuery', () => {
|
|
|
436
436
|
)
|
|
437
437
|
}
|
|
438
438
|
|
|
439
|
-
render(() => (
|
|
439
|
+
const rendered = render(() => (
|
|
440
440
|
<QueryClientProvider client={queryClient}>
|
|
441
441
|
<Page />
|
|
442
442
|
</QueryClientProvider>
|
|
443
443
|
))
|
|
444
444
|
|
|
445
|
-
await waitFor(() =>
|
|
446
|
-
fireEvent.click(
|
|
445
|
+
await waitFor(() => rendered.getByText('data: 0'))
|
|
446
|
+
fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i }))
|
|
447
447
|
|
|
448
|
-
await waitFor(() =>
|
|
448
|
+
await waitFor(() => rendered.getByText('data: 1,0'))
|
|
449
449
|
|
|
450
450
|
await waitFor(() => expect(states.length).toBe(4))
|
|
451
451
|
expect(states[0]).toMatchObject({
|
|
@@ -598,21 +598,23 @@ describe('useInfiniteQuery', () => {
|
|
|
598
598
|
)
|
|
599
599
|
}
|
|
600
600
|
|
|
601
|
-
render(() => (
|
|
601
|
+
const rendered = render(() => (
|
|
602
602
|
<QueryClientProvider client={queryClient}>
|
|
603
603
|
<Page />
|
|
604
604
|
</QueryClientProvider>
|
|
605
605
|
))
|
|
606
606
|
|
|
607
|
-
await waitFor(() =>
|
|
608
|
-
fireEvent.click(
|
|
607
|
+
await waitFor(() => rendered.getByText('data: 10'))
|
|
608
|
+
fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i }))
|
|
609
609
|
|
|
610
|
-
await waitFor(() =>
|
|
611
|
-
fireEvent.click(
|
|
612
|
-
|
|
613
|
-
|
|
610
|
+
await waitFor(() => rendered.getByText('data: 10,11'))
|
|
611
|
+
fireEvent.click(
|
|
612
|
+
rendered.getByRole('button', { name: /fetchPreviousPage/i }),
|
|
613
|
+
)
|
|
614
|
+
await waitFor(() => rendered.getByText('data: 9,10,11'))
|
|
615
|
+
fireEvent.click(rendered.getByRole('button', { name: /refetch/i }))
|
|
614
616
|
|
|
615
|
-
await waitFor(() =>
|
|
617
|
+
await waitFor(() => rendered.getByText('isFetching: false'))
|
|
616
618
|
await waitFor(() => expect(states.length).toBe(8))
|
|
617
619
|
|
|
618
620
|
// Initial fetch
|
|
@@ -1476,55 +1478,55 @@ describe('useInfiniteQuery', () => {
|
|
|
1476
1478
|
)
|
|
1477
1479
|
}
|
|
1478
1480
|
|
|
1479
|
-
render(() => (
|
|
1481
|
+
const rendered = render(() => (
|
|
1480
1482
|
<QueryClientProvider client={queryClient}>
|
|
1481
1483
|
<Page />
|
|
1482
1484
|
</QueryClientProvider>
|
|
1483
1485
|
))
|
|
1484
1486
|
|
|
1485
|
-
|
|
1487
|
+
rendered.getByText('Loading...')
|
|
1486
1488
|
|
|
1487
|
-
await waitFor(() =>
|
|
1488
|
-
await waitFor(() =>
|
|
1489
|
+
await waitFor(() => rendered.getByText('Item: 2'))
|
|
1490
|
+
await waitFor(() => rendered.getByText('Page 0: 0'))
|
|
1489
1491
|
|
|
1490
|
-
fireEvent.click(
|
|
1492
|
+
fireEvent.click(rendered.getByText('Load More'))
|
|
1491
1493
|
|
|
1492
|
-
await waitFor(() =>
|
|
1493
|
-
await waitFor(() =>
|
|
1494
|
-
await waitFor(() =>
|
|
1495
|
-
await waitFor(() =>
|
|
1494
|
+
await waitFor(() => rendered.getByText('Loading more...'))
|
|
1495
|
+
await waitFor(() => rendered.getByText('Item: 5'))
|
|
1496
|
+
await waitFor(() => rendered.getByText('Page 0: 0'))
|
|
1497
|
+
await waitFor(() => rendered.getByText('Page 1: 1'))
|
|
1496
1498
|
|
|
1497
|
-
fireEvent.click(
|
|
1499
|
+
fireEvent.click(rendered.getByText('Load More'))
|
|
1498
1500
|
|
|
1499
|
-
await waitFor(() =>
|
|
1500
|
-
await waitFor(() =>
|
|
1501
|
-
await waitFor(() =>
|
|
1502
|
-
await waitFor(() =>
|
|
1503
|
-
await waitFor(() =>
|
|
1501
|
+
await waitFor(() => rendered.getByText('Loading more...'))
|
|
1502
|
+
await waitFor(() => rendered.getByText('Item: 8'))
|
|
1503
|
+
await waitFor(() => rendered.getByText('Page 0: 0'))
|
|
1504
|
+
await waitFor(() => rendered.getByText('Page 1: 1'))
|
|
1505
|
+
await waitFor(() => rendered.getByText('Page 2: 2'))
|
|
1504
1506
|
|
|
1505
|
-
fireEvent.click(
|
|
1507
|
+
fireEvent.click(rendered.getByText('Refetch'))
|
|
1506
1508
|
|
|
1507
|
-
await waitFor(() =>
|
|
1508
|
-
await waitFor(() =>
|
|
1509
|
-
await waitFor(() =>
|
|
1510
|
-
await waitFor(() =>
|
|
1511
|
-
await waitFor(() =>
|
|
1509
|
+
await waitFor(() => rendered.getByText('Background Updating...'))
|
|
1510
|
+
await waitFor(() => rendered.getByText('Item: 8'))
|
|
1511
|
+
await waitFor(() => rendered.getByText('Page 0: 3'))
|
|
1512
|
+
await waitFor(() => rendered.getByText('Page 1: 4'))
|
|
1513
|
+
await waitFor(() => rendered.getByText('Page 2: 5'))
|
|
1512
1514
|
|
|
1513
1515
|
// ensure that Item: 4 is rendered before removing it
|
|
1514
|
-
expect(
|
|
1516
|
+
expect(rendered.queryAllByText('Item: 4')).toHaveLength(1)
|
|
1515
1517
|
|
|
1516
1518
|
// remove Item: 4
|
|
1517
|
-
fireEvent.click(
|
|
1519
|
+
fireEvent.click(rendered.getByText('Remove item'))
|
|
1518
1520
|
|
|
1519
|
-
await waitFor(() =>
|
|
1521
|
+
await waitFor(() => rendered.getByText('Background Updating...'))
|
|
1520
1522
|
// ensure that an additional item is rendered (it means that cursors were properly rebuilt)
|
|
1521
|
-
await waitFor(() =>
|
|
1522
|
-
await waitFor(() =>
|
|
1523
|
-
await waitFor(() =>
|
|
1524
|
-
await waitFor(() =>
|
|
1523
|
+
await waitFor(() => rendered.getByText('Item: 9'))
|
|
1524
|
+
await waitFor(() => rendered.getByText('Page 0: 6'))
|
|
1525
|
+
await waitFor(() => rendered.getByText('Page 1: 7'))
|
|
1526
|
+
await waitFor(() => rendered.getByText('Page 2: 8'))
|
|
1525
1527
|
|
|
1526
1528
|
// ensure that Item: 4 is no longer rendered
|
|
1527
|
-
expect(
|
|
1529
|
+
expect(rendered.queryAllByText('Item: 4')).toHaveLength(0)
|
|
1528
1530
|
})
|
|
1529
1531
|
|
|
1530
1532
|
it('should compute hasNextPage correctly for falsy getFetchMore return value on refetching', async () => {
|
|
@@ -1603,59 +1605,59 @@ describe('useInfiniteQuery', () => {
|
|
|
1603
1605
|
)
|
|
1604
1606
|
}
|
|
1605
1607
|
|
|
1606
|
-
render(() => (
|
|
1608
|
+
const rendered = render(() => (
|
|
1607
1609
|
<QueryClientProvider client={queryClient}>
|
|
1608
1610
|
<Page />
|
|
1609
1611
|
</QueryClientProvider>
|
|
1610
1612
|
))
|
|
1611
1613
|
|
|
1612
|
-
|
|
1614
|
+
rendered.getByText('Loading...')
|
|
1613
1615
|
|
|
1614
1616
|
await waitFor(() => {
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
+
rendered.getByText('Item: 9')
|
|
1618
|
+
rendered.getByText('Page 0: 0')
|
|
1617
1619
|
})
|
|
1618
1620
|
|
|
1619
|
-
fireEvent.click(
|
|
1621
|
+
fireEvent.click(rendered.getByText('Load More'))
|
|
1620
1622
|
|
|
1621
|
-
await waitFor(() =>
|
|
1623
|
+
await waitFor(() => rendered.getByText('Loading more...'))
|
|
1622
1624
|
|
|
1623
1625
|
await waitFor(() => {
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1626
|
+
rendered.getByText('Item: 19')
|
|
1627
|
+
rendered.getByText('Page 0: 0')
|
|
1628
|
+
rendered.getByText('Page 1: 1')
|
|
1627
1629
|
})
|
|
1628
1630
|
|
|
1629
|
-
fireEvent.click(
|
|
1631
|
+
fireEvent.click(rendered.getByText('Load More'))
|
|
1630
1632
|
|
|
1631
|
-
await waitFor(() =>
|
|
1633
|
+
await waitFor(() => rendered.getByText('Loading more...'))
|
|
1632
1634
|
|
|
1633
1635
|
await waitFor(() => {
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1636
|
+
rendered.getByText('Item: 29')
|
|
1637
|
+
rendered.getByText('Page 0: 0')
|
|
1638
|
+
rendered.getByText('Page 1: 1')
|
|
1639
|
+
rendered.getByText('Page 2: 2')
|
|
1638
1640
|
})
|
|
1639
1641
|
|
|
1640
|
-
|
|
1642
|
+
rendered.getByText('Nothing more to load')
|
|
1641
1643
|
|
|
1642
|
-
fireEvent.click(
|
|
1644
|
+
fireEvent.click(rendered.getByText('Remove Last Page'))
|
|
1643
1645
|
|
|
1644
1646
|
await sleep(10)
|
|
1645
1647
|
|
|
1646
|
-
fireEvent.click(
|
|
1648
|
+
fireEvent.click(rendered.getByText('Refetch'))
|
|
1647
1649
|
|
|
1648
|
-
await waitFor(() =>
|
|
1650
|
+
await waitFor(() => rendered.getByText('Background Updating...'))
|
|
1649
1651
|
|
|
1650
1652
|
await waitFor(() => {
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
+
rendered.getByText('Page 0: 3')
|
|
1654
|
+
rendered.getByText('Page 1: 4')
|
|
1653
1655
|
})
|
|
1654
1656
|
|
|
1655
|
-
expect(
|
|
1656
|
-
expect(
|
|
1657
|
+
expect(rendered.queryByText('Item: 29')).toBeNull()
|
|
1658
|
+
expect(rendered.queryByText('Page 2: 5')).toBeNull()
|
|
1657
1659
|
|
|
1658
|
-
|
|
1660
|
+
rendered.getByText('Nothing more to load')
|
|
1659
1661
|
})
|
|
1660
1662
|
|
|
1661
1663
|
it('should cancel the query function when there are no more subscriptions', async () => {
|
|
@@ -1686,7 +1688,7 @@ describe('useInfiniteQuery', () => {
|
|
|
1686
1688
|
)
|
|
1687
1689
|
}
|
|
1688
1690
|
|
|
1689
|
-
render(() => (
|
|
1691
|
+
const rendered = render(() => (
|
|
1690
1692
|
<QueryClientProvider client={queryClient}>
|
|
1691
1693
|
<Blink duration={5}>
|
|
1692
1694
|
<Page />
|
|
@@ -1694,7 +1696,7 @@ describe('useInfiniteQuery', () => {
|
|
|
1694
1696
|
</QueryClientProvider>
|
|
1695
1697
|
))
|
|
1696
1698
|
|
|
1697
|
-
await waitFor(() =>
|
|
1699
|
+
await waitFor(() => rendered.getByText('off'))
|
|
1698
1700
|
|
|
1699
1701
|
expect(cancelFn).toHaveBeenCalled()
|
|
1700
1702
|
})
|
|
@@ -1722,8 +1724,8 @@ describe('useInfiniteQuery', () => {
|
|
|
1722
1724
|
)
|
|
1723
1725
|
}
|
|
1724
1726
|
|
|
1725
|
-
render(() => <Page />)
|
|
1727
|
+
const rendered = render(() => <Page />)
|
|
1726
1728
|
|
|
1727
|
-
await waitFor(() =>
|
|
1729
|
+
await waitFor(() => rendered.getByText('Status: custom client'))
|
|
1728
1730
|
})
|
|
1729
1731
|
})
|