Skip to content

Commit 9c64967

Browse files
authored
fix: fix default import.meta.env.PROD: false (#5561)
1 parent 80265b4 commit 9c64967

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

packages/vitest/src/runtime/setup-common.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,11 @@ function setupDefines(defines: Record<string, any>) {
3030
function setupEnv(env: Record<string, any>) {
3131
if (typeof process === 'undefined')
3232
return
33-
for (const key in env)
33+
// same boolean-to-string assignment as VitestPlugin.configResolved
34+
const { PROD, DEV, ...restEnvs } = env
35+
process.env.PROD = PROD ? '1' : ''
36+
process.env.DEV = DEV ? '1' : ''
37+
for (const key in restEnvs)
3438
process.env[key] = env[key]
3539
}
3640

test/core/test/env.test.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,20 @@ test('define process and using import.meta.env together', () => {
5555
})
5656

5757
test('PROD, DEV, SSR should be boolean', () => {
58-
expect(typeof import.meta.env.PROD).toEqual('boolean')
59-
expect(typeof import.meta.env.DEV).toEqual('boolean')
60-
expect(typeof import.meta.env.SSR).toEqual('boolean')
58+
expect(import.meta.env.PROD).toBe(false)
59+
expect(import.meta.env.DEV).toBe(true)
60+
expect(process.env.PROD).toBe('')
61+
expect(process.env.DEV).toBe('1')
62+
63+
// see https://github.com/vitest-dev/vitest/issues/5562
64+
if (process.execArgv.includes('--experimental-vm-modules')) {
65+
expect(import.meta.env.SSR).toBe(false)
66+
expect(process.env.SSR).toBe(undefined)
67+
}
68+
else {
69+
expect(import.meta.env.SSR).toBe(true)
70+
expect(process.env.SSR).toBe('1')
71+
}
6172

6273
import.meta.env.SSR = false
6374
expect(import.meta.env.SSR).toEqual(false)

0 commit comments

Comments
 (0)