MCPcopy
hub / github.com/vitest-dev/vitest / setupGlobalEnv

Function setupGlobalEnv

packages/vitest/src/runtime/setup-node.ts:13–62  ·  view source on GitHub ↗
(
  config: SerializedConfig,
  environment: Environment,
)

Source from the content-addressed store, hash-verified

11// this should only be used in Node
12let globalSetup = false
13export 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
64function resolveCss(mod: NodeJS.Module) {
65 mod.exports = ''

Callers 1

runFunction · 0.90

Calls 2

setupCommonEnvFunction · 0.90
setupConsoleLogSpyFunction · 0.70

Tested by

no test coverage detected