From c4d211fcd6dad935bba15cc8a9a5ef74327aa15c Mon Sep 17 00:00:00 2001 From: Michael Cousins Date: Fri, 9 Feb 2024 10:46:33 -0500 Subject: [PATCH] Ensure browser version of Svelte is used in tests (#471) --- packages/blocks/package.json | 2 +- packages/blocks/src/vitest.setup.ts | 7 +----- packages/blocks/vite.config.ts | 7 ++++-- packages/core/package.json | 2 +- packages/core/src/vitest.setup.ts | 7 +----- packages/core/vite.config.ts | 9 ++++---- pnpm-lock.yaml | 36 ++++++++++++++--------------- 7 files changed, 32 insertions(+), 38 deletions(-) diff --git a/packages/blocks/package.json b/packages/blocks/package.json index 1dffccdc..c10dbf21 100644 --- a/packages/blocks/package.json +++ b/packages/blocks/package.json @@ -51,7 +51,7 @@ "@sveltejs/vite-plugin-svelte": "^3.0.0", "@testing-library/dom": "^9.3.3", "@testing-library/jest-dom": "^6.1.5", - "@testing-library/svelte": "^4.0.5", + "@testing-library/svelte": "^4.1.0", "@threlte/core": "^7.0.12", "@threlte/extras": "^8.0.10", "@types/three": "^0.159.0", diff --git a/packages/blocks/src/vitest.setup.ts b/packages/blocks/src/vitest.setup.ts index b74f8c3d..22fbd68a 100644 --- a/packages/blocks/src/vitest.setup.ts +++ b/packages/blocks/src/vitest.setup.ts @@ -1,7 +1,2 @@ -import { afterEach } from 'vitest'; -import { cleanup } from '@testing-library/svelte'; import '@testing-library/jest-dom/vitest'; - -afterEach(() => { - cleanup(); -}); +import '@testing-library/svelte/vitest'; diff --git a/packages/blocks/vite.config.ts b/packages/blocks/vite.config.ts index 7a521e23..a0b7d4ac 100644 --- a/packages/blocks/vite.config.ts +++ b/packages/blocks/vite.config.ts @@ -1,13 +1,16 @@ import { sveltekit } from '@sveltejs/kit/vite'; import { defineConfig } from 'vitest/config'; -export default defineConfig({ +export default defineConfig(({ mode }) => ({ plugins: [sveltekit()], server: { fs: { allow: ['prime.css'], }, }, + resolve: { + conditions: mode === 'test' ? ['browser'] : [], + }, test: { include: ['src/**/*.spec.ts'], setupFiles: ['src/vitest.setup.ts'], @@ -15,4 +18,4 @@ export default defineConfig({ mockReset: true, unstubGlobals: true, }, -}); +})); diff --git a/packages/core/package.json b/packages/core/package.json index 1c819a33..3e3af963 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -53,7 +53,7 @@ "@sveltejs/vite-plugin-svelte": "^3.0.0", "@testing-library/dom": "^9.3.3", "@testing-library/jest-dom": "^6.1.5", - "@testing-library/svelte": "^4.0.5", + "@testing-library/svelte": "^4.1.0", "@testing-library/user-event": "^14.5.1", "@types/lodash-es": "^4.17.12", "@types/prismjs": "^1.26.3", diff --git a/packages/core/src/vitest.setup.ts b/packages/core/src/vitest.setup.ts index b2696a53..0c10477c 100644 --- a/packages/core/src/vitest.setup.ts +++ b/packages/core/src/vitest.setup.ts @@ -1,6 +1,5 @@ -import { afterEach } from 'vitest'; -import { cleanup } from '@testing-library/svelte'; import '@testing-library/jest-dom/vitest'; +import '@testing-library/svelte/vitest'; /** * `PointerEvent` does not exist in `jsdom` so this polyfill is based off this @@ -39,7 +38,3 @@ if (!global.PointerEvent) { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any global.PointerEvent = PointerEvent as any; } - -afterEach(() => { - cleanup(); -}); diff --git a/packages/core/vite.config.ts b/packages/core/vite.config.ts index 14549236..a12f688b 100644 --- a/packages/core/vite.config.ts +++ b/packages/core/vite.config.ts @@ -1,20 +1,21 @@ import { sveltekit } from '@sveltejs/kit/vite'; import { defineConfig } from 'vitest/config'; -export default defineConfig({ +export default defineConfig(({ mode }) => ({ plugins: [sveltekit()], server: { fs: { allow: ['prime.css'], }, }, + resolve: { + conditions: mode === 'test' ? ['browser'] : [], + }, test: { include: ['src/**/__tests__/*.spec.ts'], setupFiles: ['src/vitest.setup.ts'], environment: 'jsdom', mockReset: true, unstubGlobals: true, - // For testing svelte internals like onMount, see: https://github.com/vitest-dev/vitest/issues/2834 - alias: [{ find: /^svelte$/u, replacement: 'svelte/internal' }], }, -}); +})); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 44de4e08..98fa11c0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,8 +33,8 @@ importers: specifier: ^6.1.5 version: 6.1.5(vitest@1.1.0) '@testing-library/svelte': - specifier: ^4.0.5 - version: 4.0.5(svelte@4.2.8) + specifier: ^4.1.0 + version: 4.1.0(svelte@4.2.8) '@threlte/core': specifier: ^7.0.12 version: 7.0.12(svelte@4.2.8)(three@0.159.0) @@ -178,8 +178,8 @@ importers: specifier: ^6.1.5 version: 6.1.5(vitest@1.1.0) '@testing-library/svelte': - specifier: ^4.0.5 - version: 4.0.5(svelte@4.2.8) + specifier: ^4.1.0 + version: 4.1.0(svelte@4.2.8) '@testing-library/user-event': specifier: ^14.5.1 version: 14.5.1(@testing-library/dom@9.3.3) @@ -4344,7 +4344,7 @@ packages: resolve-url-loader: 5.0.0 sass-loader: 13.3.2(webpack@5.89.0) style-loader: 3.3.3(webpack@5.89.0) - webpack: 5.89.0(esbuild@0.18.16) + webpack: 5.89.0(esbuild@0.18.20) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -6056,8 +6056,8 @@ packages: vitest: 1.1.0(jsdom@23.0.1) dev: true - /@testing-library/svelte@4.0.5(svelte@4.2.8): - resolution: {integrity: sha512-P7X3mpYv/My4hBZfxVxTFV5KcA+EoWfRCguWP7WQdYj6HMdg/L+LiwG4ocvLe+hupedrC7dwcy85JlxKplJp2g==} + /@testing-library/svelte@4.1.0(svelte@4.2.8): + resolution: {integrity: sha512-MJqe7x9WowkiAVdk9mvazEC2ktFZdmK2OqFVoO557PC37aBemQ4ozqdK3yrG34Zg9kuln3qgTVeLSh08e69AMw==} engines: {node: '>= 10'} peerDependencies: svelte: ^3 || ^4 @@ -8428,7 +8428,7 @@ packages: postcss-modules-values: 4.0.0(postcss@8.4.32) postcss-value-parser: 4.2.0 semver: 7.5.4 - webpack: 5.89.0(esbuild@0.18.16) + webpack: 5.89.0(esbuild@0.18.20) dev: true /css-tree@2.3.1: @@ -11307,7 +11307,7 @@ packages: dependencies: universalify: 2.0.0 optionalDependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 dev: true /jsx-ast-utils@3.3.3: @@ -11377,7 +11377,7 @@ packages: webpack: ^5.0.0 dependencies: less: 4.2.0 - webpack: 5.89.0(esbuild@0.18.16) + webpack: 5.89.0(esbuild@0.18.20) dev: true /less@4.2.0: @@ -12939,7 +12939,7 @@ packages: jiti: 1.21.0 postcss: 8.4.32 semver: 7.5.4 - webpack: 5.89.0(esbuild@0.18.16) + webpack: 5.89.0(esbuild@0.18.20) dev: true /postcss-modules-extract-imports@3.0.0(postcss@8.4.32): @@ -13955,7 +13955,7 @@ packages: optional: true dependencies: neo-async: 2.6.2 - webpack: 5.89.0(esbuild@0.18.16) + webpack: 5.89.0(esbuild@0.18.20) dev: true /sax@1.3.0: @@ -14411,7 +14411,7 @@ packages: peerDependencies: webpack: ^5.0.0 dependencies: - webpack: 5.89.0(esbuild@0.18.16) + webpack: 5.89.0(esbuild@0.18.20) dev: true /sucrase@3.32.0: @@ -14936,7 +14936,7 @@ packages: unique-string: 2.0.0 dev: true - /terser-webpack-plugin@5.3.9(esbuild@0.18.16)(webpack@5.89.0): + /terser-webpack-plugin@5.3.9(esbuild@0.18.20)(webpack@5.89.0): resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -14953,12 +14953,12 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.20 - esbuild: 0.18.16 + esbuild: 0.18.20 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.1 terser: 5.26.0 - webpack: 5.89.0(esbuild@0.18.16) + webpack: 5.89.0(esbuild@0.18.20) dev: true /terser@5.26.0: @@ -15937,7 +15937,7 @@ packages: resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} dev: true - /webpack@5.89.0(esbuild@0.18.16): + /webpack@5.89.0(esbuild@0.18.20): resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==} engines: {node: '>=10.13.0'} hasBin: true @@ -15968,7 +15968,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(esbuild@0.18.16)(webpack@5.89.0) + terser-webpack-plugin: 5.3.9(esbuild@0.18.20)(webpack@5.89.0) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: