From d5c6342c1972836fa92ba73f73901f3869bb78e6 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Wed, 16 Feb 2022 20:40:51 +0300 Subject: [PATCH 1/5] fix: put envs from .env files on process.env --- packages/vitest/src/node/plugins/index.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/vitest/src/node/plugins/index.ts b/packages/vitest/src/node/plugins/index.ts index 7f5e055b445c..eeba9772747c 100644 --- a/packages/vitest/src/node/plugins/index.ts +++ b/packages/vitest/src/node/plugins/index.ts @@ -62,14 +62,19 @@ export async function VitestPlugin(options: UserConfig = {}, ctx = new Vitest()) ) options.api = resolveApiConfig(options) - process.env.BASE_URL ??= viteConfig.base - process.env.MODE ??= viteConfig.mode + // we replace every "import.meta.env" with "process.env" + // to allow reassigning, so wee need to put all envs on process.env + const { PROD, DEV, ...envs } = viteConfig.env + // process.env can have only string values and will cast string on it if we pass other type, // so we are making them truthy - process.env.PROD ??= viteConfig.env.PROD ? '1' : '' - process.env.DEV ??= viteConfig.env.DEV ? '1' : '' + process.env.PROD ??= PROD ? '1' : '' + process.env.DEV ??= DEV ? '1' : '' process.env.SSR ??= '1' + for (const name in envs) + process.env[name] ??= envs[name] + // account for user env defines for (const key in viteConfig.define) { if (key.startsWith('import.meta.env.')) { From 7749f5199fe36a56fc1aa2454d7ecbf704257ac4 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Wed, 16 Feb 2022 20:56:42 +0300 Subject: [PATCH 2/5] test: env from .env file is read --- test/core/.env.local | 1 + test/core/test/env.test.ts | 4 ++++ 2 files changed, 5 insertions(+) create mode 100644 test/core/.env.local diff --git a/test/core/.env.local b/test/core/.env.local new file mode 100644 index 000000000000..8099b7fc3575 --- /dev/null +++ b/test/core/.env.local @@ -0,0 +1 @@ +VITE_TETS_ENV=local \ No newline at end of file diff --git a/test/core/test/env.test.ts b/test/core/test/env.test.ts index fee811c1c156..82e9d31b44dd 100644 --- a/test/core/test/env.test.ts +++ b/test/core/test/env.test.ts @@ -1,6 +1,10 @@ import { expect, test } from 'vitest' import { getAuthToken } from '../src/env' +test('reads envs from .env file', () => { + expect(import.meta.env.VITE_TETS_ENV).toBe('local') +}) + test('can reassign env locally', () => { import.meta.env.VITEST_ENV = 'TEST' expect(import.meta.env.VITEST_ENV).toBe('TEST') From e83c8e13ed89d2a066523d951828e72997e05f94 Mon Sep 17 00:00:00 2001 From: patak Date: Wed, 16 Feb 2022 20:51:22 +0100 Subject: [PATCH 3/5] chore: typo --- packages/vitest/src/node/plugins/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vitest/src/node/plugins/index.ts b/packages/vitest/src/node/plugins/index.ts index eeba9772747c..b1962c4f09c4 100644 --- a/packages/vitest/src/node/plugins/index.ts +++ b/packages/vitest/src/node/plugins/index.ts @@ -63,7 +63,7 @@ export async function VitestPlugin(options: UserConfig = {}, ctx = new Vitest()) options.api = resolveApiConfig(options) // we replace every "import.meta.env" with "process.env" - // to allow reassigning, so wee need to put all envs on process.env + // to allow reassigning, so we need to put all envs on process.env const { PROD, DEV, ...envs } = viteConfig.env // process.env can have only string values and will cast string on it if we pass other type, From f9389725e7aec9ea4bd6ce3bd443b612eefb31c6 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Thu, 17 Feb 2022 16:18:33 +0800 Subject: [PATCH 4/5] Update test/core/test/env.test.ts --- test/core/test/env.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/core/test/env.test.ts b/test/core/test/env.test.ts index 82e9d31b44dd..c002f17aae76 100644 --- a/test/core/test/env.test.ts +++ b/test/core/test/env.test.ts @@ -2,7 +2,7 @@ import { expect, test } from 'vitest' import { getAuthToken } from '../src/env' test('reads envs from .env file', () => { - expect(import.meta.env.VITE_TETS_ENV).toBe('local') + expect(import.meta.env.VITE_TEST_ENV).toBe('local') }) test('can reassign env locally', () => { From b1c1621a9773d145698073f13d60937f73d38f61 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Thu, 17 Feb 2022 16:18:46 +0800 Subject: [PATCH 5/5] Update test/core/.env.local --- test/core/.env.local | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/core/.env.local b/test/core/.env.local index 8099b7fc3575..e47f042f539a 100644 --- a/test/core/.env.local +++ b/test/core/.env.local @@ -1 +1 @@ -VITE_TETS_ENV=local \ No newline at end of file +VITE_TEST_ENV=local \ No newline at end of file