diff --git a/.nvmrc b/.nvmrc index 6276cf12fb..fb457f39d5 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v16.14.2 +v16.19.0 diff --git a/packages/react-query/src/__tests__/suspense.test.tsx b/packages/react-query/src/__tests__/suspense.test.tsx index 114e0f9059..4e3d53332c 100644 --- a/packages/react-query/src/__tests__/suspense.test.tsx +++ b/packages/react-query/src/__tests__/suspense.test.tsx @@ -151,7 +151,7 @@ describe("useQuery's in Suspense mode", () => { useQuery( key, () => { - sleep(10) + sleep(50) return 'data' }, { suspense: true }, @@ -1084,7 +1084,7 @@ describe('useQueries with suspense', () => { queryKey: key1, queryFn: async () => { results.push('1') - await sleep(10) + await sleep(50) return '1' }, suspense: true, @@ -1093,7 +1093,7 @@ describe('useQueries with suspense', () => { queryKey: key2, queryFn: async () => { results.push('2') - await sleep(20) + await sleep(200) return '2' }, staleTime: 1000, @@ -1101,6 +1101,7 @@ describe('useQueries with suspense', () => { }, ], }) + return (

data: {result.map((it) => it.data ?? 'null').join(',')}

diff --git a/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx b/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx index 05c45ed736..122a251818 100644 --- a/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx +++ b/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx @@ -283,12 +283,15 @@ describe('useInfiniteQuery', () => { }), }) states.push(state) - return null + + return
{state.data?.pages.join(',')}
} - renderWithClient(queryClient, ) + const rendered = renderWithClient(queryClient, ) - await sleep(10) + await waitFor(() => { + rendered.getByText('count: 1') + }) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -317,12 +320,21 @@ describe('useInfiniteQuery', () => { }, []), }) states.push(state) - return null + + return ( +
+ {state.data?.pages.map((page) => ( +
count: {page.count}
+ ))} +
+ ) } - renderWithClient(queryClient, ) + const rendered = renderWithClient(queryClient, ) - await sleep(20) + await waitFor(() => { + rendered.getByText('count: 1') + }) expect(states.length).toBe(2) expect(selectCalled).toBe(1) @@ -415,20 +427,29 @@ describe('useInfiniteQuery', () => { states.push(state) - const { fetchPreviousPage } = state + return ( +
+
data: {state.data?.pages.join(',') ?? null}
+ +
+ ) + } - React.useEffect(() => { - setActTimeout(() => { - fetchPreviousPage() - }, 20) - }, [fetchPreviousPage]) + const rendered = renderWithClient(queryClient, ) - return null - } + await waitFor(() => { + rendered.getByText('data: 10') + }) - renderWithClient(queryClient, ) + fireEvent.click( + rendered.getByRole('button', { name: /fetch previous page/i }), + ) - await sleep(100) + await waitFor(() => { + rendered.getByText('data: 9,10') + }) expect(states.length).toBe(4) expect(states[0]).toMatchObject({ diff --git a/packages/react-query/src/__tests__/useQueries.test.tsx b/packages/react-query/src/__tests__/useQueries.test.tsx index 83a7e617fa..1452ee0305 100644 --- a/packages/react-query/src/__tests__/useQueries.test.tsx +++ b/packages/react-query/src/__tests__/useQueries.test.tsx @@ -45,7 +45,7 @@ describe('useQueries', () => { { queryKey: key2, queryFn: async () => { - await sleep(100) + await sleep(200) return 2 }, }, @@ -1050,12 +1050,21 @@ describe('useQueries', () => { ], }) results.push(result) - return null + + return ( +
+
data1: {result[0].data}
+
data2: {result[1].data}
+
+ ) } - renderWithClient(queryClient, , { context }) + const rendered = renderWithClient(queryClient, , { context }) - await sleep(30) + await waitFor(() => { + rendered.getByText('data1: 1') + rendered.getByText('data2: 2') + }) expect(results[0]).toMatchObject([ { data: undefined }, diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 1bccc66efb..3473cfd040 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -34,7 +34,7 @@ "tslib": "^2.4.1", "typescript": "^4.7.4", "vite": "^4.0.0", - "vitest": "^0.26.3" + "vitest": "^0.27.1" }, "dependencies": { "@tanstack/query-core": "workspace:*" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b2a99447bc..733c1a6176 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1008,7 +1008,7 @@ importers: tslib: ^2.4.1 typescript: ^4.7.4 vite: ^4.0.0 - vitest: ^0.26.3 + vitest: ^0.27.1 dependencies: '@tanstack/query-core': link:../query-core devDependencies: @@ -1023,7 +1023,7 @@ importers: tslib: 2.4.1 typescript: 4.8.4 vite: 4.0.4 - vitest: 0.26.3_jsdom@20.0.3 + vitest: 0.27.1_jsdom@20.0.3 packages/vue-query: specifiers: @@ -13571,6 +13571,15 @@ packages: ufo: 1.0.1 dev: true + /mlly/1.1.0: + resolution: {integrity: sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ==} + dependencies: + acorn: 8.8.1 + pathe: 1.0.0 + pkg-types: 1.0.1 + ufo: 1.0.1 + dev: true + /mockdate/3.0.5: resolution: {integrity: sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==} dev: false @@ -14326,7 +14335,7 @@ packages: resolution: {integrity: sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g==} dependencies: jsonc-parser: 3.2.0 - mlly: 1.0.0 + mlly: 1.1.0 pathe: 1.0.0 dev: true @@ -15570,6 +15579,10 @@ packages: object-inspect: 1.12.2 dev: true + /siginfo/2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true + /signal-exit/3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -15856,6 +15869,10 @@ packages: escape-string-regexp: 2.0.0 dev: true + /stackback/0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true + /stackframe/1.3.4: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} dev: false @@ -17073,6 +17090,29 @@ packages: - terser dev: true + /vite-node/0.27.1_@types+node@17.0.45: + resolution: {integrity: sha512-d6+ue/3NzsfndWaPbYh/bFkHbmAWfDXI4B874zRx+WREnG6CUHUbBC8lKaRYZjeR6gCPN5m1aVNNRXBYICA9XA==} + engines: {node: '>=v14.16.0'} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + mlly: 1.1.0 + pathe: 0.2.0 + picocolors: 1.0.0 + source-map: 0.6.1 + source-map-support: 0.5.21 + vite: 4.0.4_@types+node@17.0.45 + transitivePeerDependencies: + - '@types/node' + - less + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + /vite-plugin-solid/2.3.9_solid-js@1.5.4+vite@3.1.3: resolution: {integrity: sha512-+lprsYgt9DVNp0kbDj2d2HWAPI13L8ff5xslk9SjiPBcsY/YUZ/1Wj0J/Oj5aiVAhwfPm8IcM3bzyHJUPlmc8w==} peerDependencies: @@ -17326,6 +17366,56 @@ packages: - terser dev: true + /vitest/0.27.1_jsdom@20.0.3: + resolution: {integrity: sha512-1sIpQ1DVFTEn7c1ici1XHcVfdU4nKiBmPtPAtGKJJJLuJjojTv/OHGgcf69P57alM4ty8V4NMv+7Yoi5Cxqx9g==} + engines: {node: '>=v14.16.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.4 + '@types/chai-subset': 1.3.3 + '@types/node': 17.0.45 + acorn: 8.8.1 + acorn-walk: 8.2.0 + cac: 6.7.14 + chai: 4.3.7 + debug: 4.3.4 + jsdom: 20.0.3 + local-pkg: 0.4.2 + picocolors: 1.0.0 + source-map: 0.6.1 + strip-literal: 1.0.0 + tinybench: 2.3.1 + tinypool: 0.3.0 + tinyspy: 1.0.2 + vite: 4.0.4_@types+node@17.0.45 + vite-node: 0.27.1_@types+node@17.0.45 + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + /vlq/1.0.1: resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} dev: false @@ -17537,6 +17627,15 @@ packages: isexe: 2.0.0 dev: true + /why-is-node-running/2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: true + /word-wrap/1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'}