From c7e8cfb046b550c18f9a6aa07f925b513685e2c1 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sat, 8 Jun 2024 15:56:29 +0900 Subject: [PATCH 1/4] test(v6): add runner dynamic import test --- packages/vite/src/node/__tests__/dev.spec.ts | 30 +++++++++++++++++-- .../__tests__/fixtures/runner-import/dep.js | 1 + .../__tests__/fixtures/runner-import/entry.js | 9 ++++++ 3 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 packages/vite/src/node/__tests__/fixtures/runner-import/dep.js create mode 100644 packages/vite/src/node/__tests__/fixtures/runner-import/entry.js diff --git a/packages/vite/src/node/__tests__/dev.spec.ts b/packages/vite/src/node/__tests__/dev.spec.ts index 346bebd2aac42e..2c8b601bbe4375 100644 --- a/packages/vite/src/node/__tests__/dev.spec.ts +++ b/packages/vite/src/node/__tests__/dev.spec.ts @@ -1,5 +1,7 @@ -import { describe, expect, test } from 'vitest' -import { resolveConfig } from '..' +import { fileURLToPath } from 'node:url' +import path from 'node:path' +import { describe, expect, onTestFinished, test } from 'vitest' +import { createServer, createServerModuleRunner, resolveConfig } from '..' describe('resolveBuildEnvironmentOptions in dev', () => { test('build.rollupOptions should not have input in lib', async () => { @@ -17,3 +19,27 @@ describe('resolveBuildEnvironmentOptions in dev', () => { expect(config.build.rollupOptions).not.toHaveProperty('input') }) }) + +test('runner dynamic import', async () => { + const root = fileURLToPath( + new URL('./fixtures/runner-import', import.meta.url), + ) + const server = await createServer({ + clearScreen: false, + configFile: false, + root, + environments: { + custom: {}, + }, + }) + onTestFinished(async () => { + await server.close() + }) + + const environment = server.environments.custom + const runner = createServerModuleRunner(environment) + + const { getDep, customImport } = await runner.import('/entry.js') + const mod = await customImport(path.join(root, 'dep.js')) + expect(mod.dep).toBe(getDep()) +}) diff --git a/packages/vite/src/node/__tests__/fixtures/runner-import/dep.js b/packages/vite/src/node/__tests__/fixtures/runner-import/dep.js new file mode 100644 index 00000000000000..8c2c3eb3c1015e --- /dev/null +++ b/packages/vite/src/node/__tests__/fixtures/runner-import/dep.js @@ -0,0 +1 @@ +export const dep = ['test'] diff --git a/packages/vite/src/node/__tests__/fixtures/runner-import/entry.js b/packages/vite/src/node/__tests__/fixtures/runner-import/entry.js new file mode 100644 index 00000000000000..4485ec3c0f69ff --- /dev/null +++ b/packages/vite/src/node/__tests__/fixtures/runner-import/entry.js @@ -0,0 +1,9 @@ +import { dep } from './dep.js' + +export function getDep() { + return dep +} + +export function customImport(id) { + return import(/* @vite-ignore */ id) +} From 213858f3861454e9afd92932005f4cd4ae507abc Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 10 Jun 2024 17:11:31 +0900 Subject: [PATCH 2/4] test: add test to server-runtime.spec.ts --- .../src/node/ssr/runtime/__tests__/fixtures/dynamic-import.js | 2 ++ .../vite/src/node/ssr/runtime/__tests__/server-runtime.spec.ts | 1 + 2 files changed, 3 insertions(+) diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/dynamic-import.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/dynamic-import.js index b46e31ccb40e2e..d743e3302472a4 100644 --- a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/dynamic-import.js +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/dynamic-import.js @@ -1,4 +1,5 @@ import * as staticModule from './basic' +import path from "node:path"; export const initialize = async () => { const nameRelative = './basic' @@ -9,6 +10,7 @@ export const initialize = async () => { dynamicRelative: await import(nameRelative), dynamicAbsolute: await import(nameAbsolute), dynamicAbsoluteExtension: await import(nameAbsoluteExtension), + dynamicAbsoluteFull: await import(path.join(import.meta.dirname, "basic.js")), static: staticModule, } } diff --git a/packages/vite/src/node/ssr/runtime/__tests__/server-runtime.spec.ts b/packages/vite/src/node/ssr/runtime/__tests__/server-runtime.spec.ts index d6323eaf9daf5f..f517b0f2fc38ee 100644 --- a/packages/vite/src/node/ssr/runtime/__tests__/server-runtime.spec.ts +++ b/packages/vite/src/node/ssr/runtime/__tests__/server-runtime.spec.ts @@ -169,6 +169,7 @@ describe('module runner initialization', async () => { expect(modules.static).toBe(modules.dynamicRelative) expect(modules.static).toBe(modules.dynamicAbsolute) expect(modules.static).toBe(modules.dynamicAbsoluteExtension) + expect(modules.static).toBe(modules.dynamicAbsoluteFull) }) it('correctly imports a virtual module', async ({ runner }) => { From 9171611d3882cdd86aac075ae81a0d7a817d13dc Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 10 Jun 2024 17:12:06 +0900 Subject: [PATCH 3/4] Revert "test(v6): add runner dynamic import test" This reverts commit c7e8cfb046b550c18f9a6aa07f925b513685e2c1. --- packages/vite/src/node/__tests__/dev.spec.ts | 30 ++----------------- .../__tests__/fixtures/runner-import/dep.js | 1 - .../__tests__/fixtures/runner-import/entry.js | 9 ------ 3 files changed, 2 insertions(+), 38 deletions(-) delete mode 100644 packages/vite/src/node/__tests__/fixtures/runner-import/dep.js delete mode 100644 packages/vite/src/node/__tests__/fixtures/runner-import/entry.js diff --git a/packages/vite/src/node/__tests__/dev.spec.ts b/packages/vite/src/node/__tests__/dev.spec.ts index 2c8b601bbe4375..346bebd2aac42e 100644 --- a/packages/vite/src/node/__tests__/dev.spec.ts +++ b/packages/vite/src/node/__tests__/dev.spec.ts @@ -1,7 +1,5 @@ -import { fileURLToPath } from 'node:url' -import path from 'node:path' -import { describe, expect, onTestFinished, test } from 'vitest' -import { createServer, createServerModuleRunner, resolveConfig } from '..' +import { describe, expect, test } from 'vitest' +import { resolveConfig } from '..' describe('resolveBuildEnvironmentOptions in dev', () => { test('build.rollupOptions should not have input in lib', async () => { @@ -19,27 +17,3 @@ describe('resolveBuildEnvironmentOptions in dev', () => { expect(config.build.rollupOptions).not.toHaveProperty('input') }) }) - -test('runner dynamic import', async () => { - const root = fileURLToPath( - new URL('./fixtures/runner-import', import.meta.url), - ) - const server = await createServer({ - clearScreen: false, - configFile: false, - root, - environments: { - custom: {}, - }, - }) - onTestFinished(async () => { - await server.close() - }) - - const environment = server.environments.custom - const runner = createServerModuleRunner(environment) - - const { getDep, customImport } = await runner.import('/entry.js') - const mod = await customImport(path.join(root, 'dep.js')) - expect(mod.dep).toBe(getDep()) -}) diff --git a/packages/vite/src/node/__tests__/fixtures/runner-import/dep.js b/packages/vite/src/node/__tests__/fixtures/runner-import/dep.js deleted file mode 100644 index 8c2c3eb3c1015e..00000000000000 --- a/packages/vite/src/node/__tests__/fixtures/runner-import/dep.js +++ /dev/null @@ -1 +0,0 @@ -export const dep = ['test'] diff --git a/packages/vite/src/node/__tests__/fixtures/runner-import/entry.js b/packages/vite/src/node/__tests__/fixtures/runner-import/entry.js deleted file mode 100644 index 4485ec3c0f69ff..00000000000000 --- a/packages/vite/src/node/__tests__/fixtures/runner-import/entry.js +++ /dev/null @@ -1,9 +0,0 @@ -import { dep } from './dep.js' - -export function getDep() { - return dep -} - -export function customImport(id) { - return import(/* @vite-ignore */ id) -} From 9f5c59f07aefb1756a37bcb1c0aff24d54288950 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 10 Jun 2024 17:38:50 +0900 Subject: [PATCH 4/4] test: tweak --- .../vite/src/node/ssr/runtime/__tests__/server-runtime.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/src/node/ssr/runtime/__tests__/server-runtime.spec.ts b/packages/vite/src/node/ssr/runtime/__tests__/server-runtime.spec.ts index f517b0f2fc38ee..eb3340abc1154f 100644 --- a/packages/vite/src/node/ssr/runtime/__tests__/server-runtime.spec.ts +++ b/packages/vite/src/node/ssr/runtime/__tests__/server-runtime.spec.ts @@ -169,7 +169,7 @@ describe('module runner initialization', async () => { expect(modules.static).toBe(modules.dynamicRelative) expect(modules.static).toBe(modules.dynamicAbsolute) expect(modules.static).toBe(modules.dynamicAbsoluteExtension) - expect(modules.static).toBe(modules.dynamicAbsoluteFull) + expect(modules.static === modules.dynamicAbsoluteFull).toBe(true) }) it('correctly imports a virtual module', async ({ runner }) => {