diff --git a/packages/vitest/src/runtime/setup.ts b/packages/vitest/src/runtime/setup.ts index c6d7b679f4e1..3d6185b0b00f 100644 --- a/packages/vitest/src/runtime/setup.ts +++ b/packages/vitest/src/runtime/setup.ts @@ -1,3 +1,5 @@ +/* eslint-disable n/no-deprecated-api */ + import { installSourcemapsSupport } from 'vite-node/source-map' import { environments } from '../integrations/env' import type { Environment, ResolvedConfig } from '../types' @@ -23,6 +25,11 @@ export async function setupGlobalEnv(config: ResolvedConfig) { if (globalSetup) return + // always mock "required" `css` files, because we cannot process them + require.extensions['.css'] = () => ({}) + require.extensions['.scss'] = () => ({}) + require.extensions['.sass'] = () => ({}) + globalSetup = true if (isNode) { diff --git a/test/core/src/file-css.css b/test/core/src/file-css.css new file mode 100644 index 000000000000..c6dd2c88fabe --- /dev/null +++ b/test/core/src/file-css.css @@ -0,0 +1,3 @@ +.red { + color: red; +} diff --git a/test/core/src/file-sass.sass b/test/core/src/file-sass.sass new file mode 100644 index 000000000000..dcb2babacb1c --- /dev/null +++ b/test/core/src/file-sass.sass @@ -0,0 +1,2 @@ +.red + color: red; diff --git a/test/core/src/file-scss.scss b/test/core/src/file-scss.scss new file mode 100644 index 000000000000..c6dd2c88fabe --- /dev/null +++ b/test/core/src/file-scss.scss @@ -0,0 +1,3 @@ +.red { + color: red; +} diff --git a/test/core/test/require.test.ts b/test/core/test/require.test.ts new file mode 100644 index 000000000000..a26e1f59e177 --- /dev/null +++ b/test/core/test/require.test.ts @@ -0,0 +1,15 @@ +import { describe, expect, it } from 'vitest' + +const _require = require + +describe('using "require" to import a module', () => { + it('importing css files works, but doesn\'t process them', () => { + const css = _require('./../src/file-css.css') + const sass = _require('./../src/file-sass.sass') + const scss = _require('./../src/file-scss.scss') + + expect(css).toEqual({}) + expect(sass).toEqual({}) + expect(scss).toEqual({}) + }) +})