( config: SerializedConfig, environment: Environment, )
| 11 | // this should only be used in Node |
| 12 | let globalSetup = false |
| 13 | export async function setupGlobalEnv( |
| 14 | config: SerializedConfig, |
| 15 | environment: Environment, |
| 16 | ): Promise<void> { |
| 17 | await setupCommonEnv(config) |
| 18 | |
| 19 | Object.defineProperty(globalThis, '__vitest_index__', { |
| 20 | value: VitestIndex, |
| 21 | enumerable: false, |
| 22 | }) |
| 23 | |
| 24 | VitestIndex.expect.setState({ |
| 25 | environment: environment.name, |
| 26 | }) |
| 27 | |
| 28 | if (globalSetup) { |
| 29 | return |
| 30 | } |
| 31 | |
| 32 | globalSetup = true |
| 33 | |
| 34 | const viteEnvironment = environment.viteEnvironment || environment.name |
| 35 | if (viteEnvironment === 'client') { |
| 36 | const _require = createRequire(import.meta.url) |
| 37 | // always mock "required" `css` files, because we cannot process them |
| 38 | _require.extensions['.css'] = resolveCss |
| 39 | _require.extensions['.scss'] = resolveCss |
| 40 | _require.extensions['.sass'] = resolveCss |
| 41 | _require.extensions['.less'] = resolveCss |
| 42 | // since we are using Vite, we can assume how these will be resolved |
| 43 | KNOWN_ASSET_TYPES.forEach((type) => { |
| 44 | _require.extensions[`.${type}`] = resolveAsset |
| 45 | }) |
| 46 | process.env.SSR = '' |
| 47 | } |
| 48 | else { |
| 49 | process.env.SSR = '1' |
| 50 | } |
| 51 | |
| 52 | // @ts-expect-error not typed global for patched timers |
| 53 | globalThis.__vitest_required__ = { |
| 54 | util, |
| 55 | timers, |
| 56 | timersPromises, |
| 57 | } |
| 58 | |
| 59 | if (!config.disableConsoleIntercept) { |
| 60 | await setupConsoleLogSpy() |
| 61 | } |
| 62 | } |
| 63 | |
| 64 | function resolveCss(mod: NodeJS.Module) { |
| 65 | mod.exports = '' |
no test coverage detected