From 3ec62f556552a674a17caa3694f08be1a01d4fd1 Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Mon, 20 Jun 2022 07:37:22 +0300 Subject: [PATCH 1/7] fix: correctly generate inline snapshots inside js files --- .../src/integrations/snapshot/port/state.ts | 8 +- pnpm-lock.yaml | 442 +++++++++--------- test/snapshots/package.json | 8 +- .../test-update/shapshots-inline-js.test.js | 25 + test/snapshots/test/shapshots.test.ts | 12 +- 5 files changed, 261 insertions(+), 234 deletions(-) create mode 100644 test/snapshots/test-update/shapshots-inline-js.test.js diff --git a/packages/vitest/src/integrations/snapshot/port/state.ts b/packages/vitest/src/integrations/snapshot/port/state.ts index 0271028552e9..7e40b70d93d4 100644 --- a/packages/vitest/src/integrations/snapshot/port/state.ts +++ b/packages/vitest/src/integrations/snapshot/port/state.ts @@ -87,7 +87,7 @@ export default class SnapshotState { }) } - private _getInlineSnapshotStack(stacks: ParsedStack[]) { + private _inferInlineSnapshotStack(stacks: ParsedStack[]) { // if called inside resolves/rejects, stacktrace is different const promiseIndex = stacks.findIndex(i => i.method.match(/__VITEST_(RESOLVES|REJECTS)__/)) if (promiseIndex !== -1) @@ -109,12 +109,16 @@ export default class SnapshotState { const error = options.error || new Error('Unknown error') const stacks = parseStacktrace(error, true) stacks.forEach(i => i.file = slash(i.file)) - const stack = this._getInlineSnapshotStack(stacks) + const stack = this._inferInlineSnapshotStack(stacks) if (!stack) { throw new Error( `Vitest: Couldn't infer stack frame for inline snapshot.\n${JSON.stringify(stacks)}`, ) } + // removing 1 column, because source map points to the wrong + // location for js files, but `column-1` points to the same in both js/ts + // #vite/8657 + stack.column-- this._inlineSnapshots.push({ snapshot: receivedSerialized, ...stack, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 26e57f842866..f677d37d9e10 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -109,9 +109,9 @@ importers: fast-glob: 3.2.11 https-localhost: 4.7.1 unocss: 0.38.2_vite@2.9.10 - unplugin-vue-components: 0.19.6_wuxm4j6bgrlfg6ha3fbo625rke + unplugin-vue-components: 0.19.6_vite@2.9.10+vue@3.2.37 vite-plugin-pwa: 0.12.0_vite@2.9.10 - vitepress: 1.0.0-alpha.1_ohobp6rpsmerwlq5ipwfh5yigy + vitepress: 1.0.0-alpha.1 workbox-window: 6.5.3 examples/basic: @@ -162,7 +162,7 @@ importers: lit: 2.2.5 devDependencies: '@vitest/ui': link:../../packages/ui - happy-dom: 5.2.0 + happy-dom: 5.3.1 vite: 2.9.10 vitest: link:../../packages/vitest @@ -176,7 +176,7 @@ importers: vitest: workspace:* zustand: 4.0.0-rc.1 dependencies: - '@vueuse/integrations': 8.5.0_axios@0.26.1+vue@3.2.37 + '@vueuse/integrations': 8.5.0_axios@0.26.1 axios: 0.26.1 tinyspy: 0.3.2 devDependencies: @@ -198,7 +198,7 @@ importers: typescript: 4.6.3 vitest: workspace:* dependencies: - next: 12.1.5_ezdxe4hg7n3pawg24sxf3xmgta + next: 12.1.5_zpnidt7m3osuk7shl3s4oenomq react: 18.0.0 react-dom: 18.0.0_react@18.0.0 devDependencies: @@ -241,7 +241,7 @@ importers: '@vitejs/plugin-react': 1.3.1 '@vitest/ui': link:../../packages/ui happy-dom: 4.1.0 - jsdom: 19.0.0 + jsdom: 20.0.0 react-test-renderer: 17.0.2_react@17.0.2 vitest: link:../../packages/vitest @@ -258,15 +258,15 @@ importers: vite: ^2.9.10 vitest: workspace:* dependencies: - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 + react: 16.14.0 + react-dom: 16.14.0_react@16.14.0 devDependencies: '@types/react': 17.0.45 '@types/react-dom': 17.0.17 '@vitejs/plugin-react': 1.3.1 '@vitest/ui': link:../../packages/ui enzyme: 3.11.0 - enzyme-adapter-react-16: 1.15.6_7ltvq4e2railvf5uya4ffxpe2a + enzyme-adapter-react-16: 1.15.6_j6bpv5pizkyfppcg2tmva6pmii vite: 2.9.10 vitest: link:../../packages/vitest @@ -294,14 +294,14 @@ importers: dependencies: '@emotion/react': 11.9.0_3dj5wppwohj5ocihzt4m54mr2a '@emotion/styled': 11.8.1_3zgpe2oef7sbs566rsy6a7qm7i - '@mui/lab': 5.0.0-alpha.85_xjii3a7ufdwggkrf6imrcribfm + '@mui/lab': 5.0.0-alpha.86_xjii3a7ufdwggkrf6imrcribfm '@mui/material': 5.8.3_rikzftoujo3cmwul4lespwcm6i history: 5.3.0 notistack: 2.0.5_ozyq7dscrvuimqma7xstouyo4e react: 17.0.2 react-dom: 17.0.2_react@17.0.2 react-router-dom: 6.3.0_sfoxds7t5ydpegc3knd667wn6m - recharts: 2.1.10_oxfzelaz5ynxsop2v2nu2h2m64 + recharts: 2.1.10_sfoxds7t5ydpegc3knd667wn6m swr: 1.3.0_react@17.0.2 devDependencies: '@testing-library/jest-dom': 5.16.4 @@ -395,7 +395,7 @@ importers: '@types/react-dom': 17.0.17 '@vitejs/plugin-react': 1.3.2 '@vitest/ui': link:../../packages/ui - jsdom: 19.0.0 + jsdom: 20.0.0 vite: 2.9.10 vitest: link:../../packages/vitest @@ -427,7 +427,7 @@ importers: '@vitejs/plugin-react': 1.3.2 '@vitest/ui': link:../../packages/ui cross-fetch: 3.1.5 - jsdom: 19.0.0 + jsdom: 20.0.0 msw: 0.39.2 vite: 2.9.10 vitest: link:../../packages/vitest @@ -443,7 +443,7 @@ importers: devDependencies: '@vitejs/plugin-vue': 2.3.3_vite@2.9.10+vue@3.2.36 '@vue/test-utils': 2.0.0_vue@3.2.36 - jsdom: 19.0.0 + jsdom: 20.0.0 vite-plugin-ruby: 3.0.12_vite@2.9.10 vitest: link:../../packages/vitest vue: 3.2.36 @@ -459,7 +459,7 @@ importers: solid-js: 1.4.3 devDependencies: jsdom: 19.0.0 - solid-start: 0.1.0-alpha.88_rr56xi33h37vhc4tv5jhq4mlhy + solid-start: 0.1.0-alpha.89_cx4i3ppfurm56vukdsqk745yba solid-testing-library: 0.3.0_solid-js@1.4.3 vitest: link:../../packages/vitest @@ -475,7 +475,7 @@ importers: '@sveltejs/vite-plugin-svelte': 1.0.0-next.45_svelte@3.48.0+vite@2.9.10 '@testing-library/svelte': 3.1.1_svelte@3.48.0 '@vitest/ui': link:../../packages/ui - jsdom: 19.0.0 + jsdom: 20.0.0 svelte: 3.48.0 vitest: link:../../packages/vitest @@ -510,7 +510,7 @@ importers: devDependencies: '@vitejs/plugin-vue': 2.3.3_vite@2.9.10+vue@3.2.36 '@vue/test-utils': 2.0.0_vue@3.2.36 - jsdom: 19.0.0 + jsdom: 20.0.0 vitest: link:../../packages/vitest examples/vue-jsx: @@ -526,7 +526,7 @@ importers: '@vitejs/plugin-vue': 2.3.3_vite@2.9.10+vue@3.2.36 '@vitejs/plugin-vue-jsx': 1.3.10 '@vue/test-utils': 2.0.0_vue@3.2.36 - jsdom: 19.0.0 + jsdom: 20.0.0 vite: 2.9.10 vitest: link:../../packages/vitest vue: 3.2.36 @@ -547,7 +547,7 @@ importers: devDependencies: '@vue/composition-api': 1.6.2_vue@2.6.14 '@vue/test-utils': 1.3.0_sbs6or2oam5i4s4vmfp4rzwdnq - jsdom: 19.0.0 + jsdom: 20.0.0 unplugin-vue2-script-setup: 0.10.2_2bloa65zsoqadlob4lncrwg3um vite: 2.9.10 vite-plugin-vue2: 1.9.3_5jesfqc2ouaeplxglzazh5atyu @@ -864,7 +864,10 @@ importers: vitest: link:../../packages/vitest test/snapshots: - specifiers: {} + specifiers: + vitest: workspace:* + dependencies: + vitest: link:../../packages/vitest test/vite-config: specifiers: @@ -3017,15 +3020,14 @@ packages: resolution: {integrity: sha512-bh5IskwkkodbvC0FzSg1AxMykfDl95hebEKwxNoq4e5QaGzOXSBgW8+jnMFZ7JU4sTBiB04vZWoUSzNrPboLZA==} dev: true - /@docsearch/js/3.1.0_ohobp6rpsmerwlq5ipwfh5yigy: + /@docsearch/js/3.1.0: resolution: {integrity: sha512-5XSK+xbP0hcTIp54MECqxkWLs6kf7Ug4nWdxWNtx8cUpLiFNFnKXDxCb35wnyNpjukmrx7Q9DkO5tFFsmNVxng==} dependencies: '@docsearch/react': 3.1.0_ohobp6rpsmerwlq5ipwfh5yigy + '@types/react': 18.0.9 preact: 10.7.2 - transitivePeerDependencies: - - '@types/react' - - react - - react-dom + react: 18.1.0 + react-dom: 18.1.0_react@18.1.0 dev: true /@docsearch/react/3.1.0_ohobp6rpsmerwlq5ipwfh5yigy: @@ -3148,6 +3150,8 @@ packages: '@emotion/weak-memoize': 0.2.5 hoist-non-react-statics: 3.3.2 react: 17.0.2 + transitivePeerDependencies: + - supports-color dev: false /@emotion/serialize/0.11.16: @@ -3225,6 +3229,8 @@ packages: '@emotion/serialize': 1.0.3 '@emotion/utils': 1.1.0 react: 17.0.2 + transitivePeerDependencies: + - supports-color dev: false /@emotion/stylis/0.8.5: @@ -3741,8 +3747,31 @@ packages: react-is: 17.0.2 dev: false - /@mui/lab/5.0.0-alpha.85_xjii3a7ufdwggkrf6imrcribfm: - resolution: {integrity: sha512-GaPl5azVXr9dbwZe1DiKr3GO9Bg3nbZ48oRTDZoMxWYMB8dm4f73GrY2Sv1Sf03z19YzlD7Ixskr6rGcKGPWlw==} + /@mui/base/5.0.0-alpha.85_sfoxds7t5ydpegc3knd667wn6m: + resolution: {integrity: sha512-ONlQJOmQrxmR+pYF9AqH69FOG4ofwzVzNltwb2xKAQIW3VbsNZahcHIpzhFd70W6EIU+QHzB9TzamSM+Fg/U7w==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.17.9 + '@emotion/is-prop-valid': 1.1.2 + '@mui/types': 7.1.4 + '@mui/utils': 5.8.4_react@17.0.2 + '@popperjs/core': 2.11.5 + clsx: 1.1.1 + prop-types: 15.8.1 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 + react-is: 17.0.2 + dev: false + + /@mui/lab/5.0.0-alpha.86_xjii3a7ufdwggkrf6imrcribfm: + resolution: {integrity: sha512-5dx9/vHldiE5KFu99YUtEGKyUgwTiq8wM+IhEnNKkU+YjEMULVYV+mgS9nvnf6laKtgqy2hOE4JivqRPIuOGdA==} engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.5.0 @@ -3774,10 +3803,10 @@ packages: '@babel/runtime': 7.17.9 '@emotion/react': 11.9.0_3dj5wppwohj5ocihzt4m54mr2a '@emotion/styled': 11.8.1_3zgpe2oef7sbs566rsy6a7qm7i - '@mui/base': 5.0.0-alpha.84_sfoxds7t5ydpegc3knd667wn6m + '@mui/base': 5.0.0-alpha.85_sfoxds7t5ydpegc3knd667wn6m '@mui/material': 5.8.3_rikzftoujo3cmwul4lespwcm6i '@mui/system': 5.8.3_bgqmsvm4hz6izcmpcwescmz73y - '@mui/utils': 5.8.0_react@17.0.2 + '@mui/utils': 5.8.4_react@17.0.2 '@mui/x-date-pickers': 5.0.0-alpha.1_syliijkev7edv25o5eguf6n2ti clsx: 1.1.1 date-fns: 2.28.0 @@ -3899,6 +3928,15 @@ packages: optional: true dev: false + /@mui/types/7.1.4: + resolution: {integrity: sha512-uveM3byMbthO+6tXZ1n2zm0W3uJCQYtwt/v5zV5I77v2v18u0ITkb8xwhsDD2i3V2Kye7SaNR6FFJ6lMuY/WqQ==} + peerDependencies: + '@types/react': '*' + peerDependenciesMeta: + '@types/react': + optional: true + dev: false + /@mui/utils/5.8.0_react@17.0.2: resolution: {integrity: sha512-7LgUtCvz78676iC0wpTH7HizMdCrTphhBmRWimIMFrp5Ph6JbDFVuKS1CwYnWWxRyYKL0QzXrDL0lptAU90EXg==} engines: {node: '>=12.0.0'} @@ -3913,6 +3951,20 @@ packages: react-is: 17.0.2 dev: false + /@mui/utils/5.8.4_react@17.0.2: + resolution: {integrity: sha512-BHYErfrjqqh76KaDAm8wZlhEip1Uj7Cmco65NcsF3BWrAl3FWngACpaPZeEbTgmaEwyWAQEE6LZhsmy43hfyqQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + react: ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.17.9 + '@types/prop-types': 15.7.5 + '@types/react-is': 17.0.3 + prop-types: 15.8.1 + react: 17.0.2 + react-is: 17.0.2 + dev: false + /@mui/x-date-pickers/5.0.0-alpha.1_syliijkev7edv25o5eguf6n2ti: resolution: {integrity: sha512-dLPkRiIn2Gr0momblxiOnIwrxn4SijVix+8e08mwAGWhiWcmWep1O9XTRDpZsjB0kjHYCf+kZjlRX4dxnj2acg==} engines: {node: '>=12.0.0'} @@ -3941,7 +3993,7 @@ packages: '@date-io/moment': 2.13.1 '@mui/material': 5.8.3_rikzftoujo3cmwul4lespwcm6i '@mui/system': 5.8.3_bgqmsvm4hz6izcmpcwescmz73y - '@mui/utils': 5.8.0_react@17.0.2 + '@mui/utils': 5.8.4_react@17.0.2 clsx: 1.1.1 date-fns: 2.28.0 prop-types: 15.8.1 @@ -4164,7 +4216,7 @@ packages: slash: 3.0.0 dev: true - /@rollup/plugin-babel/5.3.1_xrrjiapkmykkmovg76xtzegu3a: + /@rollup/plugin-babel/5.3.1_wwj6nrjtrryxuar2uaqwelbtjy: resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -4177,8 +4229,8 @@ packages: dependencies: '@babel/core': 7.18.2 '@babel/helper-module-imports': 7.16.7 - '@rollup/pluginutils': 3.1.0_rollup@2.75.5 - rollup: 2.75.5 + '@rollup/pluginutils': 3.1.0_rollup@2.75.6 + rollup: 2.75.6 dev: true /@rollup/plugin-commonjs/21.1.0_rollup@2.75.6: @@ -4235,19 +4287,19 @@ packages: rollup: 2.75.6 dev: true - /@rollup/plugin-node-resolve/11.2.1_rollup@2.75.5: + /@rollup/plugin-node-resolve/11.2.1_rollup@2.75.6: resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} engines: {node: '>= 10.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.75.5 + '@rollup/pluginutils': 3.1.0_rollup@2.75.6 '@types/resolve': 1.17.1 builtin-modules: 3.3.0 deepmerge: 4.2.2 is-module: 1.0.0 resolve: 1.22.0 - rollup: 2.75.5 + rollup: 2.75.6 dev: true /@rollup/plugin-node-resolve/13.3.0_rollup@2.75.6: @@ -4265,26 +4317,14 @@ packages: rollup: 2.75.6 dev: true - /@rollup/plugin-replace/2.4.2_rollup@2.75.5: + /@rollup/plugin-replace/2.4.2_rollup@2.75.6: resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.75.5 + '@rollup/pluginutils': 3.1.0_rollup@2.75.6 magic-string: 0.25.9 - rollup: 2.75.5 - dev: true - - /@rollup/pluginutils/3.1.0_rollup@2.75.5: - resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} - engines: {node: '>= 8.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 - dependencies: - '@types/estree': 0.0.39 - estree-walker: 1.0.1 - picomatch: 2.3.1 - rollup: 2.75.5 + rollup: 2.75.6 dev: true /@rollup/pluginutils/3.1.0_rollup@2.75.6: @@ -4726,27 +4766,6 @@ packages: regenerator-runtime: 0.13.9 dev: true - /@storybook/addons/6.5.7_sfoxds7t5ydpegc3knd667wn6m: - resolution: {integrity: sha512-tUZ2c1uegUcwY31ztNQZGU/HUwAEEGIR8fEOvvO8S0TNQGoo6cwFtZmWBh3mTSRGcmzK2SNBjFHZua5Ee9TefA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@storybook/api': 6.5.7_sfoxds7t5ydpegc3knd667wn6m - '@storybook/channels': 6.5.7 - '@storybook/client-logger': 6.5.7 - '@storybook/core-events': 6.5.7 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/router': 6.5.7_sfoxds7t5ydpegc3knd667wn6m - '@storybook/theming': 6.5.7_sfoxds7t5ydpegc3knd667wn6m - '@types/webpack-env': 1.16.4 - core-js: 3.22.2 - global: 4.4.0 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - regenerator-runtime: 0.13.9 - dev: true - /@storybook/addons/6.5.8_sfoxds7t5ydpegc3knd667wn6m: resolution: {integrity: sha512-L3LmbsYP9tDHHvpr/yv8YuEkzym7SXp/jZ0km31tpG3EuZmgGu7MXPrZ2ymEw4PkAhQzztgRr23VTfKobGUojA==} peerDependencies: @@ -4822,33 +4841,6 @@ packages: util-deprecate: 1.0.2 dev: true - /@storybook/api/6.5.7_sfoxds7t5ydpegc3knd667wn6m: - resolution: {integrity: sha512-QCNypz4X+lYuFW7EzvRPXMf8uS3gfSIV8sqXtEe5XoMb0HQXhy6AGU7/4iAeuUimtETqLTxq+kOxaSg4uPowxg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@storybook/channels': 6.5.7 - '@storybook/client-logger': 6.5.7 - '@storybook/core-events': 6.5.7 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/router': 6.5.7_sfoxds7t5ydpegc3knd667wn6m - '@storybook/semver': 7.3.2 - '@storybook/theming': 6.5.7_sfoxds7t5ydpegc3knd667wn6m - core-js: 3.22.2 - fast-deep-equal: 3.1.3 - global: 4.4.0 - lodash: 4.17.21 - memoizerific: 1.11.3 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - regenerator-runtime: 0.13.9 - store2: 2.13.2 - telejson: 6.0.8 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - dev: true - /@storybook/api/6.5.8_sfoxds7t5ydpegc3knd667wn6m: resolution: {integrity: sha512-/MueV+wLCvy9gFA3ih4g7QYjDmn14i+D2ydonfaEC7R+agFGXxXwJGPKkz3yBNrRpNkBwcbY9mAmv8lE2AqgqQ==} peerDependencies: @@ -5025,14 +5017,6 @@ packages: util-deprecate: 1.0.2 dev: true - /@storybook/channels/6.5.7: - resolution: {integrity: sha512-v880fWBpWgiWrDmZesTIstNfMZhrPfgXAtLNcL5Z89NAPahsHskOSszc0BDxKN3gb+ZeTKUqHxY57dQdp+1rhg==} - dependencies: - core-js: 3.22.2 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - dev: true - /@storybook/channels/6.5.8: resolution: {integrity: sha512-fNql1lEIvWlI1NiRtwFMWOOvfW6qxgeSP6xoqiAJ0b+QYegEFG9UxJDuEvVHq++S81FulgQ5U+p+5R9XSV19tQ==} dependencies: @@ -5085,13 +5069,6 @@ packages: global: 4.4.0 dev: true - /@storybook/client-logger/6.5.7: - resolution: {integrity: sha512-ycDy1kXeXRg3djSTXRGMVxc0kvaWw/UhHDs2VGFmOPScsoeWpdbePHXJMFbsqippxuexpsofqTryBwH2b6BPhw==} - dependencies: - core-js: 3.22.2 - global: 4.4.0 - dev: true - /@storybook/client-logger/6.5.8: resolution: {integrity: sha512-dH6HSaVuOIMHy1+rpsqcD3SJxVZEEbuEtsNpdUGwLJaIuduhUJJpM2xQfUW0siZDyrgwoa+znll+G0YNUbv7sg==} dependencies: @@ -5328,12 +5305,6 @@ packages: core-js: 3.22.2 dev: true - /@storybook/core-events/6.5.7: - resolution: {integrity: sha512-epqYy67Ypry5QdCt7FpN57/X9uuS7R2+DLFORZIpL/SJG1dIdN4POQ1icWOhPzHl+eiSgaV7e2oPaUsN+LPhJQ==} - dependencies: - core-js: 3.22.2 - dev: true - /@storybook/core-events/6.5.8: resolution: {integrity: sha512-lzG4Lg65WFYvjs2k/E3CP4+eyPexEGrDyRMO9Pbj9H9x+eosYptauEbT/wXF83bmUWZKLWWVUAZX7hDcxBO8cw==} dependencies: @@ -5854,19 +5825,6 @@ packages: regenerator-runtime: 0.13.9 dev: true - /@storybook/router/6.5.7_sfoxds7t5ydpegc3knd667wn6m: - resolution: {integrity: sha512-edWEdAb8O0rSgdXoBZDDuNlQg2cOmC/nJ6gXj9zBotzmXqsbxWyjKGooG1dU6dnKshUqE1RmWF7/N1WMluLf0A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@storybook/client-logger': 6.5.7 - core-js: 3.22.2 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - regenerator-runtime: 0.13.9 - dev: true - /@storybook/router/6.5.8_sfoxds7t5ydpegc3knd667wn6m: resolution: {integrity: sha512-tseNJpZ2ZzVYowjekUMpGJVVRMrwOkttieD9mRbHrhh+2n7b+SoMKnuLi3ow0xeOyPL8ZDng2FgRjQzQHXA5Sw==} peerDependencies: @@ -6052,19 +6010,6 @@ packages: regenerator-runtime: 0.13.9 dev: true - /@storybook/theming/6.5.7_sfoxds7t5ydpegc3knd667wn6m: - resolution: {integrity: sha512-6zp1V84DSBcS8BtFOCJlF2/nIonjQmr+dILPxaM3lCm/X003i2jAQrBKTfPlmzCeDn07PBhzHaRJ3wJskfmeNw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@storybook/client-logger': 6.5.7 - core-js: 3.22.2 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - regenerator-runtime: 0.13.9 - dev: true - /@storybook/theming/6.5.8_sfoxds7t5ydpegc3knd667wn6m: resolution: {integrity: sha512-1VaKHqj38Ls1bJwDpg3+aEOlvVib/DCFkP6WYrP/AQtNAzxiyw5WkaoRlTVJZvCdu5TxjpG4O6/Ai5TI9QftIg==} peerDependencies: @@ -7473,7 +7418,7 @@ packages: vue: 3.2.37 vue-demi: 0.12.5_vue@3.2.37 - /@vueuse/integrations/8.5.0_axios@0.26.1+vue@3.2.37: + /@vueuse/integrations/8.5.0_axios@0.26.1: resolution: {integrity: sha512-tZNYg5T07OacF1x4evGoRZK1BMU0ge7MqF4tzR3eJLD0EPiq4jd6+HUzCloPtMZ14wNPwaP1B8xYUyYxucPJ3w==} peerDependencies: axios: '*' @@ -7508,10 +7453,10 @@ packages: '@vueuse/core': 8.5.0_vue@3.2.37 '@vueuse/shared': 8.5.0_vue@3.2.37 axios: 0.26.1 + vue: 3.2.37 vue-demi: 0.12.5_vue@3.2.37 transitivePeerDependencies: - '@vue/composition-api' - - vue dev: false /@vueuse/metadata/8.5.0: @@ -7821,7 +7766,7 @@ packages: symbol.prototype.description: 1.0.5 dev: true - /airbnb-prop-types/2.16.0_react@17.0.2: + /airbnb-prop-types/2.16.0_react@16.14.0: resolution: {integrity: sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==} peerDependencies: react: ^0.14 || ^15.0.0 || ^16.0.0-alpha @@ -7834,7 +7779,7 @@ packages: object.entries: 1.1.5 prop-types: 15.8.1 prop-types-exact: 1.2.0 - react: 17.0.2 + react: 16.14.0 react-is: 16.13.1 dev: true @@ -10957,7 +10902,12 @@ packages: engines: {node: '>=0.12'} dev: true - /enzyme-adapter-react-16/1.15.6_7ltvq4e2railvf5uya4ffxpe2a: + /entities/4.3.0: + resolution: {integrity: sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==} + engines: {node: '>=0.12'} + dev: true + + /enzyme-adapter-react-16/1.15.6_j6bpv5pizkyfppcg2tmva6pmii: resolution: {integrity: sha512-yFlVJCXh8T+mcQo8M6my9sPgeGzj85HSHi6Apgf1Cvq/7EL/J9+1JoJmJsRxZgyTvPMAqOEpRSu/Ii/ZpyOk0g==} peerDependencies: enzyme: ^3.0.0 @@ -10965,31 +10915,31 @@ packages: react-dom: ^16.0.0-0 dependencies: enzyme: 3.11.0 - enzyme-adapter-utils: 1.14.0_react@17.0.2 + enzyme-adapter-utils: 1.14.0_react@16.14.0 enzyme-shallow-equal: 1.0.4 has: 1.0.3 object.assign: 4.1.2 object.values: 1.1.5 prop-types: 15.8.1 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 + react: 16.14.0 + react-dom: 16.14.0_react@16.14.0 react-is: 16.13.1 - react-test-renderer: 16.14.0_react@17.0.2 + react-test-renderer: 16.14.0_react@16.14.0 semver: 5.7.1 dev: true - /enzyme-adapter-utils/1.14.0_react@17.0.2: + /enzyme-adapter-utils/1.14.0_react@16.14.0: resolution: {integrity: sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg==} peerDependencies: react: 0.13.x || 0.14.x || ^15.0.0-0 || ^16.0.0-0 dependencies: - airbnb-prop-types: 2.16.0_react@17.0.2 + airbnb-prop-types: 2.16.0_react@16.14.0 function.prototype.name: 1.1.5 has: 1.0.3 object.assign: 4.1.2 object.fromentries: 2.0.5 prop-types: 15.8.1 - react: 17.0.2 + react: 16.14.0 semver: 5.7.1 dev: true @@ -12824,8 +12774,8 @@ packages: - encoding dev: true - /happy-dom/5.2.0: - resolution: {integrity: sha512-WbMaOZjadH7/c15U1I1GheswXX12g/QxTPjs9gYHZQGl+Xx9X5eQEj84BQ5ivjFLFR6oJ56lL5+jcesXP0FLjg==} + /happy-dom/5.3.1: + resolution: {integrity: sha512-zVb0VUIK73lMZR4e9ntaEQSRTf8/Rrz9MlO2VQMOn68aZAC3qoMPS/81Rkfva4vMR+bKXDqkeHiw7HumvvBmag==} dependencies: css.escape: 1.5.1 he: 1.2.0 @@ -14684,6 +14634,48 @@ packages: - utf-8-validate dev: true + /jsdom/20.0.0: + resolution: {integrity: sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.7.1 + acorn-globals: 6.0.0 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.3.1 + domexception: 4.0.0 + escodegen: 2.0.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.0 + parse5: 7.0.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.0.0 + w3c-hr-time: 1.0.2 + w3c-xmlserializer: 3.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + ws: 8.8.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /jsesc/0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true @@ -15652,7 +15644,7 @@ packages: peerDependencies: msw: '>=0.35.0 <1.0.0' dependencies: - '@storybook/addons': 6.5.7_sfoxds7t5ydpegc3knd667wn6m + '@storybook/addons': 6.5.8_sfoxds7t5ydpegc3knd667wn6m is-node-process: 1.0.1 msw: 0.39.2 transitivePeerDependencies: @@ -15763,7 +15755,7 @@ packages: resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} dev: true - /next/12.1.5_ezdxe4hg7n3pawg24sxf3xmgta: + /next/12.1.5_zpnidt7m3osuk7shl3s4oenomq: resolution: {integrity: sha512-YGHDpyfgCfnT5GZObsKepmRnne7Kzp7nGrac07dikhutWQug7hHg85/+sPJ4ZW5Q2pDkb+n0FnmLkmd44htIJQ==} engines: {node: '>=12.22.0'} hasBin: true @@ -15786,7 +15778,7 @@ packages: postcss: 8.4.5 react: 18.0.0 react-dom: 18.0.0_react@18.0.0 - styled-jsx: 5.0.1_uyynoipo3v3vrfv6si7tyrw7ku + styled-jsx: 5.0.1_react@18.0.0 optionalDependencies: '@next/swc-android-arm-eabi': 12.1.5 '@next/swc-android-arm64': 12.1.5 @@ -16451,6 +16443,12 @@ packages: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} dev: true + /parse5/7.0.0: + resolution: {integrity: sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==} + dependencies: + entities: 4.3.0 + dev: true + /parseurl/1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -17243,6 +17241,17 @@ packages: - supports-color dev: true + /react-dom/16.14.0_react@16.14.0: + resolution: {integrity: sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==} + peerDependencies: + react: ^16.14.0 + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + prop-types: 15.8.1 + react: 16.14.0 + scheduler: 0.19.1 + /react-dom/17.0.2_react@17.0.2: resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==} peerDependencies: @@ -17420,14 +17429,14 @@ packages: refractor: 3.6.0 dev: true - /react-test-renderer/16.14.0_react@17.0.2: + /react-test-renderer/16.14.0_react@16.14.0: resolution: {integrity: sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg==} peerDependencies: react: ^16.14.0 dependencies: object-assign: 4.1.1 prop-types: 15.8.1 - react: 17.0.2 + react: 16.14.0 react-is: 16.13.1 scheduler: 0.19.1 dev: true @@ -17472,6 +17481,14 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false + /react/16.14.0: + resolution: {integrity: sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + prop-types: 15.8.1 + /react/17.0.2: resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} engines: {node: '>=0.10.0'} @@ -17585,7 +17602,7 @@ packages: decimal.js-light: 2.5.1 dev: false - /recharts/2.1.10_oxfzelaz5ynxsop2v2nu2h2m64: + /recharts/2.1.10_sfoxds7t5ydpegc3knd667wn6m: resolution: {integrity: sha512-me6c8m2Gs88X/nuM2gDSTDIhpSLNMbiTrlE4Cu53hjZNegT3g3xLlTrbYSAQuBCFWuWJAZXCmEuMr6AwizLyaA==} engines: {node: '>=12'} peerDependencies: @@ -17598,6 +17615,7 @@ packages: d3-shape: 2.1.0 eventemitter3: 4.0.7 lodash: 4.17.21 + prop-types: 15.8.1 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 react-is: 16.13.1 @@ -17605,8 +17623,6 @@ packages: react-smooth: 2.0.0_oxfzelaz5ynxsop2v2nu2h2m64 recharts-scale: 0.4.5 reduce-css-calc: 2.1.8 - transitivePeerDependencies: - - prop-types dev: false /redent/1.0.0: @@ -17995,14 +18011,14 @@ packages: spdx-satisfies: 5.0.1 dev: true - /rollup-plugin-terser/7.0.2_rollup@2.75.5: + /rollup-plugin-terser/7.0.2_rollup@2.75.6: resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} peerDependencies: rollup: ^2.0.0 dependencies: '@babel/code-frame': 7.16.7 jest-worker: 26.6.2 - rollup: 2.75.5 + rollup: 2.75.6 serialize-javascript: 4.0.0 terser: 5.12.1 dev: true @@ -18147,12 +18163,18 @@ packages: xmlchars: 2.2.0 dev: true + /saxes/6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + dependencies: + xmlchars: 2.2.0 + dev: true + /scheduler/0.19.1: resolution: {integrity: sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==} dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 - dev: true /scheduler/0.20.2: resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} @@ -18481,8 +18503,8 @@ packages: - supports-color dev: true - /solid-app-router/0.3.3_solid-js@1.4.3: - resolution: {integrity: sha512-JEn0gi6q8Pq9M2Ml3CLeNzenxuBrOrQg4aQyeIZTNjOAeEil/9YiaAJk+US78sIdVcqflTneN5KZgJMIGJ0rFQ==} + /solid-app-router/0.4.1_solid-js@1.4.3: + resolution: {integrity: sha512-RKHyFQ+J5lXyE/SoyJVHgTBeBck2etYVJn1/9F7ehlzyD2pIOMqLpNXD1GfWQljHqNdXZBSyE+xB/Cck5l9Q/g==} peerDependencies: solid-js: ^1.3.5 dependencies: @@ -18511,7 +18533,7 @@ packages: solid-js: 1.4.3 dev: true - /solid-start-node/0.1.0-alpha.82_rg23sq3othatmmcq7gaspvqd4y: + /solid-start-node/0.1.0-alpha.82_qvworw424gikhemp7joh3g3msi: resolution: {integrity: sha512-v0S/y260wcFBNSZ9gShJvZjw6MWD8OfHHruPqDWgzquD0izCXtYfAoU6+YpkejF482Nt/ZfPWXB5LKR+3GdxrQ==} requiresBuild: true peerDependencies: @@ -18526,7 +18548,7 @@ packages: polka: 1.0.0-next.22 rollup: 2.75.6 sirv: 1.0.19 - solid-start: 0.1.0-alpha.88_rr56xi33h37vhc4tv5jhq4mlhy + solid-start: 0.1.0-alpha.89_cx4i3ppfurm56vukdsqk745yba undici: 4.16.0 vite: 2.9.10 transitivePeerDependencies: @@ -18534,11 +18556,11 @@ packages: dev: true optional: true - /solid-start/0.1.0-alpha.88_rr56xi33h37vhc4tv5jhq4mlhy: - resolution: {integrity: sha512-sML6krhbYg0oW+UVnVA0XIJjiXifP7GWKMwAKMyx9Ut9mYPiLhGTq61NEzSMr34F2z3SUq2PK9XmvvSCqMt+AA==} + /solid-start/0.1.0-alpha.89_cx4i3ppfurm56vukdsqk745yba: + resolution: {integrity: sha512-ZTVLt9eUAAGLkwt6UKEp3pSYsoLKdR9uYJgSuiiRZryDUm2nOj32cG2vO52nL9FXx4vD5Kpdh5xl0vB5jL5I0Q==} hasBin: true peerDependencies: - solid-app-router: ^0.3.1 + solid-app-router: ^0.4.1 solid-js: ^1.4.0 solid-meta: ^0.27.2 vite: ^2.8.6 @@ -18563,7 +18585,7 @@ packages: rollup-route-manifest: 1.0.0_rollup@2.75.6 sade: 1.8.1 sirv: 1.0.19 - solid-app-router: 0.3.3_solid-js@1.4.3 + solid-app-router: 0.4.1_solid-js@1.4.3 solid-js: 1.4.3 solid-meta: 0.27.5_solid-js@1.4.3 undici: 4.16.0 @@ -18571,7 +18593,7 @@ packages: vite-plugin-inspect: 0.3.15_vite@2.9.10 vite-plugin-solid: 2.2.6 optionalDependencies: - solid-start-node: 0.1.0-alpha.82_rg23sq3othatmmcq7gaspvqd4y + solid-start-node: 0.1.0-alpha.82_qvworw424gikhemp7joh3g3msi transitivePeerDependencies: - less - sass @@ -19072,7 +19094,7 @@ packages: inline-style-parser: 0.1.1 dev: true - /styled-jsx/5.0.1_uyynoipo3v3vrfv6si7tyrw7ku: + /styled-jsx/5.0.1_react@18.0.0: resolution: {integrity: sha512-+PIZ/6Uk40mphiQJJI1202b+/dYeTVd9ZnMPR80pgiWbjIwvN2zIp4r9et0BgqBuShh48I0gttPlAXA7WVvBxw==} engines: {node: '>= 12.0.0'} peerDependencies: @@ -19085,7 +19107,6 @@ packages: babel-plugin-macros: optional: true dependencies: - '@babel/core': 7.18.2 react: 18.0.0 dev: false @@ -19504,7 +19525,7 @@ packages: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} /tr46/1.0.1: - resolution: {integrity: sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=} + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} dependencies: punycode: 2.1.1 dev: true @@ -20107,7 +20128,7 @@ packages: - webpack dev: true - /unplugin-vue-components/0.19.6_wuxm4j6bgrlfg6ha3fbo625rke: + /unplugin-vue-components/0.19.6_vite@2.9.10+vue@3.2.37: resolution: {integrity: sha512-APvrJ9Hpid1MLT0G4PWerMJgARhNw6dzz0pcCwCxaO2DR7VyvDacMqjOQNC6ukq7FSw3wzD8VH+9i3EFXwkGmw==} engines: {node: '>=14'} peerDependencies: @@ -20129,7 +20150,7 @@ packages: magic-string: 0.26.2 minimatch: 5.0.1 resolve: 1.22.0 - unplugin: 0.6.3_rollup@2.75.5+vite@2.9.10 + unplugin: 0.6.3_vite@2.9.10 vue: 3.2.37 transitivePeerDependencies: - esbuild @@ -20194,30 +20215,6 @@ packages: webpack-virtual-modules: 0.4.3 dev: true - /unplugin/0.6.3_rollup@2.75.5+vite@2.9.10: - resolution: {integrity: sha512-CoW88FQfCW/yabVc4bLrjikN9HC8dEvMU4O7B6K2jsYMPK0l6iAnd9dpJwqGcmXJKRCU9vwSsy653qg+RK0G6A==} - peerDependencies: - esbuild: '>=0.13' - rollup: ^2.50.0 - vite: ^2.3.0 - webpack: 4 || 5 - peerDependenciesMeta: - esbuild: - optional: true - rollup: - optional: true - vite: - optional: true - webpack: - optional: true - dependencies: - chokidar: 3.5.3 - rollup: 2.75.5 - vite: 2.9.10 - webpack-sources: 3.2.3 - webpack-virtual-modules: 0.4.3 - dev: true - /unplugin/0.6.3_rollup@2.75.6+vite@2.9.10: resolution: {integrity: sha512-CoW88FQfCW/yabVc4bLrjikN9HC8dEvMU4O7B6K2jsYMPK0l6iAnd9dpJwqGcmXJKRCU9vwSsy653qg+RK0G6A==} peerDependencies: @@ -20266,7 +20263,7 @@ packages: dev: true /unset-value/1.0.0: - resolution: {integrity: sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=} + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} engines: {node: '>=0.10.0'} dependencies: has-value: 0.3.1 @@ -20298,7 +20295,7 @@ packages: dev: true /urix/0.1.0: - resolution: {integrity: sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=} + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} deprecated: Please see https://github.com/lydell/urix#deprecated dev: true @@ -20320,7 +20317,7 @@ packages: dev: true /url/0.11.0: - resolution: {integrity: sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=} + resolution: {integrity: sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==} dependencies: punycode: 1.3.2 querystring: 0.2.0 @@ -20351,7 +20348,7 @@ packages: dev: true /util/0.10.3: - resolution: {integrity: sha1-evsa/lCAUkZInj23/g7TeTNqwPk=} + resolution: {integrity: sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==} dependencies: inherits: 2.0.1 dev: true @@ -20659,13 +20656,13 @@ packages: optionalDependencies: fsevents: 2.3.2 - /vitepress/1.0.0-alpha.1_ohobp6rpsmerwlq5ipwfh5yigy: + /vitepress/1.0.0-alpha.1: resolution: {integrity: sha512-yA0QIl+mB3fQ2j+keQVa0DTT0waP2AeWM/p9VYfUAT9vOkQEGass4/oYmMGPCQrBwCaO3cpOxJL3ZFVooyvybQ==} engines: {node: '>=14.6.0'} hasBin: true dependencies: '@docsearch/css': 3.1.0 - '@docsearch/js': 3.1.0_ohobp6rpsmerwlq5ipwfh5yigy + '@docsearch/js': 3.1.0 '@vitejs/plugin-vue': 2.3.3_vite@2.9.10+vue@3.2.37 '@vueuse/core': 8.6.0_vue@3.2.37 body-scroll-lock: 4.0.0-beta.0 @@ -20673,11 +20670,8 @@ packages: vite: 2.9.10 vue: 3.2.37 transitivePeerDependencies: - - '@types/react' - '@vue/composition-api' - less - - react - - react-dom - sass - stylus dev: true @@ -21100,7 +21094,7 @@ packages: dev: true /wordwrap/1.0.0: - resolution: {integrity: sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=} + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} dev: true /workbox-background-sync/6.5.3: @@ -21124,9 +21118,9 @@ packages: '@babel/core': 7.18.2 '@babel/preset-env': 7.16.11_@babel+core@7.18.2 '@babel/runtime': 7.17.9 - '@rollup/plugin-babel': 5.3.1_xrrjiapkmykkmovg76xtzegu3a - '@rollup/plugin-node-resolve': 11.2.1_rollup@2.75.5 - '@rollup/plugin-replace': 2.4.2_rollup@2.75.5 + '@rollup/plugin-babel': 5.3.1_wwj6nrjtrryxuar2uaqwelbtjy + '@rollup/plugin-node-resolve': 11.2.1_rollup@2.75.6 + '@rollup/plugin-replace': 2.4.2_rollup@2.75.6 '@surma/rollup-plugin-off-main-thread': 2.2.3 ajv: 8.11.0 common-tags: 1.8.2 @@ -21135,8 +21129,8 @@ packages: glob: 7.2.3 lodash: 4.17.21 pretty-bytes: 5.6.0 - rollup: 2.75.5 - rollup-plugin-terser: 7.0.2_rollup@2.75.5 + rollup: 2.75.6 + rollup-plugin-terser: 7.0.2_rollup@2.75.6 source-map: 0.8.0-beta.0 stringify-object: 3.3.0 strip-comments: 2.0.1 diff --git a/test/snapshots/package.json b/test/snapshots/package.json index 6f13b19b171e..25f3d3986c56 100644 --- a/test/snapshots/package.json +++ b/test/snapshots/package.json @@ -2,8 +2,12 @@ "name": "@vitest/snapshots", "private": true, "scripts": { - "test": "vitest", - "testu": "vitest -u", + "test": "pnpm run test:snaps && pnpm run test:update", + "test:snaps": "vitest run --dir test", + "test:update": "vitest run -u --dir test-update", "coverage": "vitest run --coverage" + }, + "dependencies": { + "vitest": "workspace:*" } } diff --git a/test/snapshots/test-update/shapshots-inline-js.test.js b/test/snapshots/test-update/shapshots-inline-js.test.js new file mode 100644 index 000000000000..9eeafe8e77a0 --- /dev/null +++ b/test/snapshots/test-update/shapshots-inline-js.test.js @@ -0,0 +1,25 @@ +import { describe, expect, test } from 'vitest' + +// when snapshots are generated Vitest reruns `toMatchInlineSnapshot` checks +// please, don't commit generated snapshots +describe('snapshots are generated in correct order', () => { + test('first snaphot', () => { + expect({ foo: ['bar'] }).toMatchInlineSnapshot(` + Object { + "foo": Array [ + "bar", + ], + } + `) + }) + + test('second snapshot', () => { + expect({ foo: ['zed'] }).toMatchInlineSnapshot(` + Object { + "foo": Array [ + "zed", + ], + } + `) + }) +}) diff --git a/test/snapshots/test/shapshots.test.ts b/test/snapshots/test/shapshots.test.ts index e9bc4f1d71ca..8a687d551735 100644 --- a/test/snapshots/test/shapshots.test.ts +++ b/test/snapshots/test/shapshots.test.ts @@ -1,4 +1,4 @@ -import { expect } from 'vitest' +import { expect, test } from 'vitest' const println = () => { const message = ` @@ -14,11 +14,11 @@ export default function () { test('non default snapshot format', () => { expect({ foo: ['bar'] }).toMatchInlineSnapshot(` - Object { - "foo": Array [ - "bar", - ], - } + Object { + "foo": Array [ + "bar", + ], + } `) }) From 254327fe5aa33b68f92e5e3201b4f1424e7452c6 Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Mon, 20 Jun 2022 07:38:56 +0300 Subject: [PATCH 2/7] chore: cleanup --- .../test-update/shapshots-inline-js.test.js | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/test/snapshots/test-update/shapshots-inline-js.test.js b/test/snapshots/test-update/shapshots-inline-js.test.js index 9eeafe8e77a0..c0da1da94740 100644 --- a/test/snapshots/test-update/shapshots-inline-js.test.js +++ b/test/snapshots/test-update/shapshots-inline-js.test.js @@ -4,22 +4,10 @@ import { describe, expect, test } from 'vitest' // please, don't commit generated snapshots describe('snapshots are generated in correct order', () => { test('first snaphot', () => { - expect({ foo: ['bar'] }).toMatchInlineSnapshot(` - Object { - "foo": Array [ - "bar", - ], - } - `) + expect({ foo: ['bar'] }).toMatchInlineSnapshot() }) test('second snapshot', () => { - expect({ foo: ['zed'] }).toMatchInlineSnapshot(` - Object { - "foo": Array [ - "zed", - ], - } - `) + expect({ foo: ['zed'] }).toMatchInlineSnapshot() }) }) From 706bea8567d89ee9b41c3b91ee45df4108de9472 Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Tue, 21 Jun 2022 11:03:46 +0300 Subject: [PATCH 3/7] chore: add full link to comment --- packages/vitest/src/integrations/snapshot/port/state.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vitest/src/integrations/snapshot/port/state.ts b/packages/vitest/src/integrations/snapshot/port/state.ts index 7e40b70d93d4..566d48830a84 100644 --- a/packages/vitest/src/integrations/snapshot/port/state.ts +++ b/packages/vitest/src/integrations/snapshot/port/state.ts @@ -117,7 +117,7 @@ export default class SnapshotState { } // removing 1 column, because source map points to the wrong // location for js files, but `column-1` points to the same in both js/ts - // #vite/8657 + // https://github.com/vitejs/vite/issues/8657 stack.column-- this._inlineSnapshots.push({ snapshot: receivedSerialized, From 9a5b2727c4f42ac4a64e528db9b9ee4ec75bf0c7 Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Tue, 21 Jun 2022 11:24:17 +0300 Subject: [PATCH 4/7] test: imvrove snapshot generated test --- test/snapshots/package.json | 2 +- .../test-update/shapshots-inline-js.test.js | 21 ++++++++++-- .../test-update/validate-inline-js.ts | 8 +++++ .../test/__snapshots__/shapshots.test.ts.snap | 32 +++++++++++++++++++ test/snapshots/test/shapshots.test.ts | 8 +++++ 5 files changed, 67 insertions(+), 4 deletions(-) create mode 100644 test/snapshots/test-update/validate-inline-js.ts diff --git a/test/snapshots/package.json b/test/snapshots/package.json index 25f3d3986c56..adb927548a5b 100644 --- a/test/snapshots/package.json +++ b/test/snapshots/package.json @@ -2,7 +2,7 @@ "name": "@vitest/snapshots", "private": true, "scripts": { - "test": "pnpm run test:snaps && pnpm run test:update", + "test": "pnpm run test:update && pnpm run test:snaps", "test:snaps": "vitest run --dir test", "test:update": "vitest run -u --dir test-update", "coverage": "vitest run --coverage" diff --git a/test/snapshots/test-update/shapshots-inline-js.test.js b/test/snapshots/test-update/shapshots-inline-js.test.js index c0da1da94740..5ada8f9b25da 100644 --- a/test/snapshots/test-update/shapshots-inline-js.test.js +++ b/test/snapshots/test-update/shapshots-inline-js.test.js @@ -1,13 +1,28 @@ import { describe, expect, test } from 'vitest' +import { validateNoSnapshots } from './validate-inline-js' // when snapshots are generated Vitest reruns `toMatchInlineSnapshot` checks // please, don't commit generated snapshots -describe('snapshots are generated in correct order', () => { +describe('snapshots are generated in correct order', async () => { + await validateNoSnapshots(__filename) + test('first snaphot', () => { - expect({ foo: ['bar'] }).toMatchInlineSnapshot() + expect({ foo: ['bar'] }).toMatchInlineSnapshot(` + Object { + "foo": Array [ + "bar", + ], + } + `) }) test('second snapshot', () => { - expect({ foo: ['zed'] }).toMatchInlineSnapshot() + expect({ foo: ['zed'] }).toMatchInlineSnapshot(` + Object { + "foo": Array [ + "zed", + ], + } + `) }) }) diff --git a/test/snapshots/test-update/validate-inline-js.ts b/test/snapshots/test-update/validate-inline-js.ts new file mode 100644 index 000000000000..21f8025070fe --- /dev/null +++ b/test/snapshots/test-update/validate-inline-js.ts @@ -0,0 +1,8 @@ +import fs from 'fs/promises' + +export async function validateNoSnapshots(filepath: string) { + const content = await fs.readFile(filepath, 'utf8') + + if (content.includes('toMatchInlineSnapshot(`')) + expect.fail('snapshots should not be generated before running test') +} diff --git a/test/snapshots/test/__snapshots__/shapshots.test.ts.snap b/test/snapshots/test/__snapshots__/shapshots.test.ts.snap index a3bdd937d41c..556ef66ff40e 100644 --- a/test/snapshots/test/__snapshots__/shapshots.test.ts.snap +++ b/test/snapshots/test/__snapshots__/shapshots.test.ts.snap @@ -1,5 +1,37 @@ // Vitest Snapshot v1 +exports[`js snapshots generated correctly 1`] = ` +"import { describe, expect, test } from 'vitest' +import { validateNoSnapshots } from './validate-inline-js' + +// when snapshots are generated Vitest reruns \`toMatchInlineSnapshot\` checks +// please, don't commit generated snapshots +describe('snapshots are generated in correct order', async () => { + await validateNoSnapshots(__filename) + + test('first snaphot', () => { + expect({ foo: ['bar'] }).toMatchInlineSnapshot(\` + Object { + \\"foo\\": Array [ + \\"bar\\", + ], + } + \`) + }) + + test('second snapshot', () => { + expect({ foo: ['zed'] }).toMatchInlineSnapshot(\` + Object { + \\"foo\\": Array [ + \\"zed\\", + ], + } + \`) + }) +}) +" +`; + exports[`multiline strings 1`] = ` " export default function () { diff --git a/test/snapshots/test/shapshots.test.ts b/test/snapshots/test/shapshots.test.ts index 8a687d551735..55cf06802c7b 100644 --- a/test/snapshots/test/shapshots.test.ts +++ b/test/snapshots/test/shapshots.test.ts @@ -1,3 +1,5 @@ +import fs from 'fs/promises' +import pathe from 'pathe' import { expect, test } from 'vitest' const println = () => { @@ -36,3 +38,9 @@ my string " `) }) + +test('js snapshots generated correctly', async () => { + const path = pathe.resolve(__dirname, '../test-update/shapshots-inline-js.test.js') + const content = await fs.readFile(path, 'utf8') + expect(content).toMatchSnapshot() +}) From 6ce6bbdba0356d438da08ac1e1dc047f4d4e4105 Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Tue, 21 Jun 2022 11:25:04 +0300 Subject: [PATCH 5/7] chore: remove snapshots :S --- .../test-update/shapshots-inline-js.test.js | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/test/snapshots/test-update/shapshots-inline-js.test.js b/test/snapshots/test-update/shapshots-inline-js.test.js index 5ada8f9b25da..c7cc53c8371c 100644 --- a/test/snapshots/test-update/shapshots-inline-js.test.js +++ b/test/snapshots/test-update/shapshots-inline-js.test.js @@ -7,22 +7,10 @@ describe('snapshots are generated in correct order', async () => { await validateNoSnapshots(__filename) test('first snaphot', () => { - expect({ foo: ['bar'] }).toMatchInlineSnapshot(` - Object { - "foo": Array [ - "bar", - ], - } - `) + expect({ foo: ['bar'] }).toMatchInlineSnapshot() }) test('second snapshot', () => { - expect({ foo: ['zed'] }).toMatchInlineSnapshot(` - Object { - "foo": Array [ - "zed", - ], - } - `) + expect({ foo: ['zed'] }).toMatchInlineSnapshot() }) }) From f28591c8c43eae3f6ab300e6f3eb8cd5947c0126 Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Tue, 21 Jun 2022 11:28:42 +0300 Subject: [PATCH 6/7] chore: fix lockfile --- pnpm-lock.yaml | 68 ++++++++++++++++---------------------------------- 1 file changed, 22 insertions(+), 46 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d280a72eb702..6c160f0c5a8c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -109,9 +109,9 @@ importers: fast-glob: 3.2.11 https-localhost: 4.7.1 unocss: 0.39.3_vite@2.9.10 - unplugin-vue-components: 0.19.6_wuxm4j6bgrlfg6ha3fbo625rke + unplugin-vue-components: 0.19.6_vite@2.9.10+vue@3.2.37 vite-plugin-pwa: 0.12.0_vite@2.9.10 - vitepress: 1.0.0-alpha.2_ohobp6rpsmerwlq5ipwfh5yigy + vitepress: 1.0.0-alpha.2 workbox-window: 6.5.3 examples/basic: @@ -4245,7 +4245,7 @@ packages: slash: 3.0.0 dev: true - /@rollup/plugin-babel/5.3.1_wwj6nrjtrryxuar2uaqwelbtjy: + /@rollup/plugin-babel/5.3.1_obr3axpgyrzzba3wi3xvzr4i4e: resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -4258,8 +4258,8 @@ packages: dependencies: '@babel/core': 7.18.2 '@babel/helper-module-imports': 7.16.7 - '@rollup/pluginutils': 3.1.0_rollup@2.75.6 - rollup: 2.75.6 + '@rollup/pluginutils': 3.1.0_rollup@2.75.7 + rollup: 2.75.7 dev: true /@rollup/plugin-commonjs/21.1.0_rollup@2.75.7: @@ -4316,19 +4316,19 @@ packages: rollup: 2.75.7 dev: true - /@rollup/plugin-node-resolve/11.2.1_rollup@2.75.6: + /@rollup/plugin-node-resolve/11.2.1_rollup@2.75.7: resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} engines: {node: '>= 10.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.75.6 + '@rollup/pluginutils': 3.1.0_rollup@2.75.7 '@types/resolve': 1.17.1 builtin-modules: 3.3.0 deepmerge: 4.2.2 is-module: 1.0.0 resolve: 1.22.0 - rollup: 2.75.6 + rollup: 2.75.7 dev: true /@rollup/plugin-node-resolve/13.3.0_rollup@2.75.7: @@ -4346,14 +4346,14 @@ packages: rollup: 2.75.7 dev: true - /@rollup/plugin-replace/2.4.2_rollup@2.75.6: + /@rollup/plugin-replace/2.4.2_rollup@2.75.7: resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.75.6 + '@rollup/pluginutils': 3.1.0_rollup@2.75.7 magic-string: 0.25.9 - rollup: 2.75.6 + rollup: 2.75.7 dev: true /@rollup/pluginutils/3.1.0_rollup@2.75.7: @@ -8106,7 +8106,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.19.5 + es-abstract: 1.20.1 es-shim-unscopables: 1.0.0 dev: true @@ -10932,7 +10932,7 @@ packages: engines: {node: '>=0.12'} dev: true - /enzyme-adapter-react-16/1.15.6_7ltvq4e2railvf5uya4ffxpe2a: + /enzyme-adapter-react-16/1.15.6_j6bpv5pizkyfppcg2tmva6pmii: resolution: {integrity: sha512-yFlVJCXh8T+mcQo8M6my9sPgeGzj85HSHi6Apgf1Cvq/7EL/J9+1JoJmJsRxZgyTvPMAqOEpRSu/Ii/ZpyOk0g==} peerDependencies: enzyme: ^3.0.0 @@ -17710,7 +17710,7 @@ packages: dev: false /reflect.ownkeys/0.2.0: - resolution: {integrity: sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=} + resolution: {integrity: sha512-qOLsBKHCpSOFKK1NUOCGC5VyeufB6lEsFe92AL2bhIJsacZS1qdoOZSbPk3MYKuT2cFlRDnulKXuuElIrMjGUg==} dev: true /refractor/3.6.0: @@ -18071,14 +18071,14 @@ packages: spdx-satisfies: 5.0.1 dev: true - /rollup-plugin-terser/7.0.2_rollup@2.75.6: + /rollup-plugin-terser/7.0.2_rollup@2.75.7: resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} peerDependencies: rollup: ^2.0.0 dependencies: '@babel/code-frame': 7.16.7 jest-worker: 26.6.2 - rollup: 2.75.6 + rollup: 2.75.7 serialize-javascript: 4.0.0 terser: 5.12.1 dev: true @@ -20287,30 +20287,6 @@ packages: webpack-virtual-modules: 0.4.3 dev: true - /unplugin/0.6.3_rollup@2.75.5+vite@2.9.10: - resolution: {integrity: sha512-CoW88FQfCW/yabVc4bLrjikN9HC8dEvMU4O7B6K2jsYMPK0l6iAnd9dpJwqGcmXJKRCU9vwSsy653qg+RK0G6A==} - peerDependencies: - esbuild: '>=0.13' - rollup: ^2.50.0 - vite: ^2.3.0 - webpack: 4 || 5 - peerDependenciesMeta: - esbuild: - optional: true - rollup: - optional: true - vite: - optional: true - webpack: - optional: true - dependencies: - chokidar: 3.5.3 - rollup: 2.75.5 - vite: 2.9.10 - webpack-sources: 3.2.3 - webpack-virtual-modules: 0.4.3 - dev: true - /unplugin/0.6.3_rollup@2.75.7+vite@2.9.10: resolution: {integrity: sha512-CoW88FQfCW/yabVc4bLrjikN9HC8dEvMU4O7B6K2jsYMPK0l6iAnd9dpJwqGcmXJKRCU9vwSsy653qg+RK0G6A==} peerDependencies: @@ -20778,7 +20754,7 @@ packages: optionalDependencies: fsevents: 2.3.2 - /vitepress/1.0.0-alpha.2_ohobp6rpsmerwlq5ipwfh5yigy: + /vitepress/1.0.0-alpha.2: resolution: {integrity: sha512-twSsmx2DI/3XgZZ8KLyRAH8RgK2Zj4kJx/kwhZhimwndYqQDrtcIaAcuV+P3FKukZ+cYtm9yt9qohz631jKx4A==} engines: {node: '>=14.6.0'} hasBin: true @@ -21241,9 +21217,9 @@ packages: '@babel/core': 7.18.2 '@babel/preset-env': 7.16.11_@babel+core@7.18.2 '@babel/runtime': 7.17.9 - '@rollup/plugin-babel': 5.3.1_wwj6nrjtrryxuar2uaqwelbtjy - '@rollup/plugin-node-resolve': 11.2.1_rollup@2.75.6 - '@rollup/plugin-replace': 2.4.2_rollup@2.75.6 + '@rollup/plugin-babel': 5.3.1_obr3axpgyrzzba3wi3xvzr4i4e + '@rollup/plugin-node-resolve': 11.2.1_rollup@2.75.7 + '@rollup/plugin-replace': 2.4.2_rollup@2.75.7 '@surma/rollup-plugin-off-main-thread': 2.2.3 ajv: 8.11.0 common-tags: 1.8.2 @@ -21252,8 +21228,8 @@ packages: glob: 7.2.3 lodash: 4.17.21 pretty-bytes: 5.6.0 - rollup: 2.75.6 - rollup-plugin-terser: 7.0.2_rollup@2.75.6 + rollup: 2.75.7 + rollup-plugin-terser: 7.0.2_rollup@2.75.7 source-map: 0.8.0-beta.0 stringify-object: 3.3.0 strip-comments: 2.0.1 From 73a722ffeeb8f1fbfbec3657048c9285b241e020 Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Tue, 21 Jun 2022 11:48:53 +0300 Subject: [PATCH 7/7] chore: generate inline snapshot test instead of using one --- .gitignore | 2 +- test/snapshots/package.json | 3 ++- .../test-update/shapshots-inline-js.test.js | 19 ++++++++++++++----- .../test-update/validate-inline-js.ts | 8 -------- .../test/__snapshots__/shapshots.test.ts.snap | 3 --- test/snapshots/tools/generate-inline-test.mjs | 18 ++++++++++++++++++ test/snapshots/tools/inline-test-template.js | 13 +++++++++++++ 7 files changed, 48 insertions(+), 18 deletions(-) delete mode 100644 test/snapshots/test-update/validate-inline-js.ts create mode 100644 test/snapshots/tools/generate-inline-test.mjs create mode 100644 test/snapshots/tools/inline-test-template.js diff --git a/.gitignore b/.gitignore index dbc6315cee84..7bf39a87245a 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,4 @@ cypress/videos cypress/downloads cypress/screenshots docs/public/user-avatars -docs/public/sponsors +docs/public/sponsors \ No newline at end of file diff --git a/test/snapshots/package.json b/test/snapshots/package.json index adb927548a5b..b3311e643454 100644 --- a/test/snapshots/package.json +++ b/test/snapshots/package.json @@ -2,7 +2,8 @@ "name": "@vitest/snapshots", "private": true, "scripts": { - "test": "pnpm run test:update && pnpm run test:snaps", + "test": "pnpm run test:generate && pnpm run test:update && pnpm run test:snaps", + "test:generate": "node tools/generate-inline-test.mjs", "test:snaps": "vitest run --dir test", "test:update": "vitest run -u --dir test-update", "coverage": "vitest run --coverage" diff --git a/test/snapshots/test-update/shapshots-inline-js.test.js b/test/snapshots/test-update/shapshots-inline-js.test.js index c7cc53c8371c..78a2f4fca8cf 100644 --- a/test/snapshots/test-update/shapshots-inline-js.test.js +++ b/test/snapshots/test-update/shapshots-inline-js.test.js @@ -1,16 +1,25 @@ import { describe, expect, test } from 'vitest' -import { validateNoSnapshots } from './validate-inline-js' // when snapshots are generated Vitest reruns `toMatchInlineSnapshot` checks // please, don't commit generated snapshots describe('snapshots are generated in correct order', async () => { - await validateNoSnapshots(__filename) - test('first snaphot', () => { - expect({ foo: ['bar'] }).toMatchInlineSnapshot() + expect({ foo: ['bar'] }).toMatchInlineSnapshot(` + Object { + "foo": Array [ + "bar", + ], + } + `) }) test('second snapshot', () => { - expect({ foo: ['zed'] }).toMatchInlineSnapshot() + expect({ foo: ['zed'] }).toMatchInlineSnapshot(` + Object { + "foo": Array [ + "zed", + ], + } + `) }) }) diff --git a/test/snapshots/test-update/validate-inline-js.ts b/test/snapshots/test-update/validate-inline-js.ts deleted file mode 100644 index 21f8025070fe..000000000000 --- a/test/snapshots/test-update/validate-inline-js.ts +++ /dev/null @@ -1,8 +0,0 @@ -import fs from 'fs/promises' - -export async function validateNoSnapshots(filepath: string) { - const content = await fs.readFile(filepath, 'utf8') - - if (content.includes('toMatchInlineSnapshot(`')) - expect.fail('snapshots should not be generated before running test') -} diff --git a/test/snapshots/test/__snapshots__/shapshots.test.ts.snap b/test/snapshots/test/__snapshots__/shapshots.test.ts.snap index 556ef66ff40e..b12c0f0dd8b2 100644 --- a/test/snapshots/test/__snapshots__/shapshots.test.ts.snap +++ b/test/snapshots/test/__snapshots__/shapshots.test.ts.snap @@ -2,13 +2,10 @@ exports[`js snapshots generated correctly 1`] = ` "import { describe, expect, test } from 'vitest' -import { validateNoSnapshots } from './validate-inline-js' // when snapshots are generated Vitest reruns \`toMatchInlineSnapshot\` checks // please, don't commit generated snapshots describe('snapshots are generated in correct order', async () => { - await validateNoSnapshots(__filename) - test('first snaphot', () => { expect({ foo: ['bar'] }).toMatchInlineSnapshot(\` Object { diff --git a/test/snapshots/tools/generate-inline-test.mjs b/test/snapshots/tools/generate-inline-test.mjs new file mode 100644 index 000000000000..59cf6240367a --- /dev/null +++ b/test/snapshots/tools/generate-inline-test.mjs @@ -0,0 +1,18 @@ +import fs from 'fs/promises' +import { fileURLToPath } from 'url' +import pathe from 'pathe' + +const dirname = pathe.dirname(fileURLToPath(import.meta.url)) + +export async function generateInlineTest(templatePath, testpath) { + const template = await fs.readFile(templatePath, 'utf8') + await fs.writeFile(testpath, template) + console.log(`Generated ${testpath}`) +} + +const filepath = pathe.resolve(dirname, '../test-update/shapshots-inline-js.test.js') +const template = pathe.resolve(dirname, './inline-test-template.js'); + +(async () => { + await generateInlineTest(template, filepath) +})() diff --git a/test/snapshots/tools/inline-test-template.js b/test/snapshots/tools/inline-test-template.js new file mode 100644 index 000000000000..7e6e2efb9de9 --- /dev/null +++ b/test/snapshots/tools/inline-test-template.js @@ -0,0 +1,13 @@ +import { describe, expect, test } from 'vitest' + +// when snapshots are generated Vitest reruns `toMatchInlineSnapshot` checks +// please, don't commit generated snapshots +describe('snapshots are generated in correct order', async () => { + test('first snaphot', () => { + expect({ foo: ['bar'] }).toMatchInlineSnapshot() + }) + + test('second snapshot', () => { + expect({ foo: ['zed'] }).toMatchInlineSnapshot() + }) +})