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..03146a31ed 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -26,7 +26,7 @@ "@sveltejs/package": "^1.0.0", "@sveltejs/vite-plugin-svelte": "^2.0.2", "@testing-library/svelte": "^3.2.2", - "@vitest/coverage-istanbul": "^0.26.3", + "@vitest/coverage-istanbul": "^0.27.1", "eslint-plugin-svelte": "^2.14.1", "jsdom": "^20.0.3", "svelte": "^3.54.0", @@ -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..950bfee55b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1000,7 +1000,7 @@ importers: '@sveltejs/vite-plugin-svelte': ^2.0.2 '@tanstack/query-core': workspace:* '@testing-library/svelte': ^3.2.2 - '@vitest/coverage-istanbul': ^0.26.3 + '@vitest/coverage-istanbul': ^0.27.1 eslint-plugin-svelte: ^2.14.1 jsdom: ^20.0.3 svelte: ^3.54.0 @@ -1008,14 +1008,14 @@ 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: '@sveltejs/package': 1.0.2_glsdxddlaertg66rhhvanbinpy '@sveltejs/vite-plugin-svelte': 2.0.2_svelte@3.55.0+vite@4.0.4 '@testing-library/svelte': 3.2.2_svelte@3.55.0 - '@vitest/coverage-istanbul': 0.26.3_jsdom@20.0.3 + '@vitest/coverage-istanbul': 0.27.1_jsdom@20.0.3 eslint-plugin-svelte: 2.14.1_svelte@3.55.0 jsdom: 20.0.3 svelte: 3.55.0 @@ -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: @@ -4851,10 +4851,10 @@ packages: glob: 7.2.3 graceful-fs: 4.2.10 istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 5.2.0 + istanbul-lib-instrument: 5.2.1 istanbul-lib-report: 3.0.0 istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.4 + istanbul-reports: 3.1.5 jest-haste-map: 27.5.1 jest-resolve: 27.5.1 jest-util: 27.5.1 @@ -6469,7 +6469,7 @@ packages: functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 - semver: 7.3.7 + semver: 7.3.8 tsutils: 3.21.0_typescript@4.4.4 typescript: 4.4.4 transitivePeerDependencies: @@ -6741,7 +6741,7 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.7 + semver: 7.3.8 tsutils: 3.21.0 transitivePeerDependencies: - supports-color @@ -6761,7 +6761,7 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.7 + semver: 7.3.8 tsutils: 3.21.0_typescript@4.8.3 typescript: 4.8.3 transitivePeerDependencies: @@ -6893,8 +6893,8 @@ packages: vue: 3.2.41 dev: true - /@vitest/coverage-istanbul/0.26.3_jsdom@20.0.3: - resolution: {integrity: sha512-pJRxb+mGy11WdYiam6iW6N4CyhaBbpne+CGPqYGid74SplcR8N07JT3ETDoHKqh5vJCX5UnEIYIreanvFjgLHg==} + /@vitest/coverage-istanbul/0.27.1_jsdom@20.0.3: + resolution: {integrity: sha512-VVLwkyRloXb5laEWdCDb5Ns4+W7vtb1PBJR0nLXZRCuzDKH3VeWYmb4xeYn6I9fz9Yv9Vmcke2X/gd3/lKW5Vw==} dependencies: istanbul-lib-coverage: 3.2.0 istanbul-lib-instrument: 5.2.1 @@ -6902,7 +6902,7 @@ packages: istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.5 test-exclude: 6.0.0 - vitest: 0.26.3_jsdom@20.0.3 + vitest: 0.27.1_jsdom@20.0.3 transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -7756,7 +7756,7 @@ packages: '@babel/helper-plugin-utils': 7.19.0 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.0 + istanbul-lib-instrument: 5.2.1 test-exclude: 6.0.0 transitivePeerDependencies: - supports-color @@ -8574,7 +8574,7 @@ packages: dev: false /concat-map/0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} /concurrently/7.2.2: resolution: {integrity: sha512-DcQkI0ruil5BA/g7Xy3EWySGrFJovF5RYAYxwGvv9Jf9q9B1v3jPFP2tl6axExNf1qgF30kjoNYrangZ0ey4Aw==} @@ -11665,19 +11665,6 @@ packages: engines: {node: '>=8'} dev: true - /istanbul-lib-instrument/5.2.0: - resolution: {integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==} - engines: {node: '>=8'} - dependencies: - '@babel/core': 7.19.1 - '@babel/parser': 7.19.1 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - /istanbul-lib-instrument/5.2.1: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} @@ -11711,14 +11698,6 @@ packages: - supports-color dev: true - /istanbul-reports/3.1.4: - resolution: {integrity: sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==} - engines: {node: '>=8'} - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.0 - dev: true - /istanbul-reports/3.1.5: resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} engines: {node: '>=8'} @@ -13562,8 +13541,8 @@ packages: dependencies: minimist: 1.2.6 - /mlly/1.0.0: - resolution: {integrity: sha512-QL108Hwt+u9bXdWgOI0dhzZfACovn5Aen4Xvc8Jasd9ouRH4NjnrXEiyP3nVvJo91zPlYjVRckta0Nt2zfoR6g==} + /mlly/1.1.0: + resolution: {integrity: sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ==} dependencies: acorn: 8.8.1 pathe: 1.0.0 @@ -14326,7 +14305,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 +15549,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 +15839,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 @@ -17052,14 +17039,16 @@ packages: engines: {node: '>= 0.8'} dev: false - /vite-node/0.26.3_@types+node@17.0.45: - resolution: {integrity: sha512-Te2bq0Bfvq6XiO718I+1EinMjpNYKws6SNHKOmVbILAQimKoZKDd+IZLlkaYcBXPpK3HFe2U80k8Zw+m3w/a2w==} + /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.0.0 + 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 @@ -17279,8 +17268,8 @@ packages: vite: 4.0.4 dev: true - /vitest/0.26.3_jsdom@20.0.3: - resolution: {integrity: sha512-FmHxU9aUCxTi23keF3vxb/Qp0lYXaaJ+jRLGOUmMS3qVTOJvgGE+f1VArupA6pEhaG2Ans4X+zV9dqM5WISMbg==} + /vitest/0.27.1_jsdom@20.0.3: + resolution: {integrity: sha512-1sIpQ1DVFTEn7c1ici1XHcVfdU4nKiBmPtPAtGKJJJLuJjojTv/OHGgcf69P57alM4ty8V4NMv+7Yoi5Cxqx9g==} engines: {node: '>=v14.16.0'} hasBin: true peerDependencies: @@ -17306,17 +17295,20 @@ packages: '@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.26.3_@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 @@ -17537,6 +17529,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'}