From af9ceabaef44560accdd72ea2d2d0411650cbd02 Mon Sep 17 00:00:00 2001 From: yoho <907415276@qq.com> Date: Sun, 13 Feb 2022 18:16:44 +0800 Subject: [PATCH] fix: support for define global constants (#743) --- packages/vite-node/src/cli.ts | 3 +++ packages/vitest/src/node/execute.ts | 3 +++ test/coverage-test/src/Defined.vue | 6 ++++++ test/coverage-test/test/vue.test.ts | 9 +++++++++ test/coverage-test/typings.d.ts | 1 + test/coverage-test/vitest.config.ts | 3 +++ 6 files changed, 25 insertions(+) create mode 100644 test/coverage-test/src/Defined.vue create mode 100644 test/coverage-test/typings.d.ts diff --git a/packages/vite-node/src/cli.ts b/packages/vite-node/src/cli.ts index 876c57a985de..aec50fc02884 100644 --- a/packages/vite-node/src/cli.ts +++ b/packages/vite-node/src/cli.ts @@ -84,6 +84,9 @@ async function run(options: CliOptions = {}) { }, }) + // provide the vite define variable in this context + await runner.executeId('/@vite/env') + for (const file of files) await runner.executeFile(file) diff --git a/packages/vitest/src/node/execute.ts b/packages/vitest/src/node/execute.ts index 483c52611ad6..4108b0c88604 100644 --- a/packages/vitest/src/node/execute.ts +++ b/packages/vitest/src/node/execute.ts @@ -14,6 +14,9 @@ export interface ExecuteOptions extends ViteNodeRunnerOptions { export async function executeInViteNode(options: ExecuteOptions) { const runner = new VitestRunner(options) + // provide the vite define variable in this context + await runner.executeId('/@vite/env') + const result: any[] = [] for (const file of options.files) result.push(await runner.executeFile(file)) diff --git a/test/coverage-test/src/Defined.vue b/test/coverage-test/src/Defined.vue new file mode 100644 index 000000000000..ea23174393a8 --- /dev/null +++ b/test/coverage-test/src/Defined.vue @@ -0,0 +1,6 @@ + + diff --git a/test/coverage-test/test/vue.test.ts b/test/coverage-test/test/vue.test.ts index ee9df3a7ef5a..521f4bfb5056 100644 --- a/test/coverage-test/test/vue.test.ts +++ b/test/coverage-test/test/vue.test.ts @@ -5,6 +5,7 @@ import { expect, test } from 'vitest' import { mount } from '@vue/test-utils' import Hello from '../src/Hello.vue' +import Defined from '../src/Defined.vue' test('vue 3 coverage', async() => { expect(Hello).toBeTruthy() @@ -26,3 +27,11 @@ test('vue 3 coverage', async() => { expect(wrapper.text()).toContain('4 x 4 = 16') }) + +test('define package in vm', () => { + expect(Defined).toBeTruthy() + + const wrapper = mount(Defined) + + expect(wrapper.text()).toContain(MY_CONSTANT) +}) diff --git a/test/coverage-test/typings.d.ts b/test/coverage-test/typings.d.ts new file mode 100644 index 000000000000..6b85feb7c2ec --- /dev/null +++ b/test/coverage-test/typings.d.ts @@ -0,0 +1 @@ +declare const MY_CONSTANT: string diff --git a/test/coverage-test/vitest.config.ts b/test/coverage-test/vitest.config.ts index a45fa5ac20ef..42303dbc3c44 100644 --- a/test/coverage-test/vitest.config.ts +++ b/test/coverage-test/vitest.config.ts @@ -5,6 +5,9 @@ export default defineConfig({ plugins: [ vue(), ], + define: { + MY_CONSTANT: '"my constant"', + }, test: { }, })