Skip to content

Commit e340802

Browse files
committed
fix: correctly resolve external dependencies loaded by custom environments (#4196)
1 parent 730b29e commit e340802

File tree

6 files changed

+41
-80
lines changed

6 files changed

+41
-80
lines changed

packages/vitest/src/runtime/child.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,8 @@ async function init(ctx: ChildContext) {
3939

4040
const environment = await loadEnvironment(ctx.environment.name, {
4141
root: ctx.config.root,
42-
fetchModule(id) {
43-
return rpc.fetch(id, 'ssr')
44-
},
42+
fetchModule: id => rpc.fetch(id, 'ssr'),
43+
resolveId: (id, importer) => rpc.resolveId(id, importer, 'ssr'),
4544
})
4645
if (ctx.environment.transformMode)
4746
environment.transformMode = ctx.environment.transformMode

packages/vitest/src/runtime/vm.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,8 @@ export async function run(ctx: WorkerContext) {
3939

4040
const environment = await loadEnvironment(ctx.environment.name, {
4141
root: ctx.config.root,
42-
fetchModule(id) {
43-
return rpc.fetch(id, 'ssr')
44-
},
42+
fetchModule: id => rpc.fetch(id, 'ssr'),
43+
resolveId: (id, importer) => rpc.resolveId(id, importer, 'ssr'),
4544
})
4645

4746
if (!environment.setupVM) {

packages/vitest/src/runtime/worker.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,8 @@ async function init(ctx: WorkerContext) {
3737

3838
const environment = await loadEnvironment(ctx.environment.name, {
3939
root: ctx.config.root,
40-
fetchModule(id) {
41-
return rpc.fetch(id, 'ssr')
42-
},
40+
fetchModule: id => rpc.fetch(id, 'ssr'),
41+
resolveId: (id, importer) => rpc.resolveId(id, importer, 'ssr'),
4342
})
4443
if (ctx.environment.transformMode)
4544
environment.transformMode = ctx.environment.transformMode

pnpm-lock.yaml

+26-71
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/env-custom/package.json

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
"coverage": "vitest run --coverage"
77
},
88
"devDependencies": {
9+
"@types/debug": "^4.1.8",
10+
"debug": "^4.3.4",
911
"vitest": "workspace:*",
1012
"vitest-environment-custom": "file:./vitest-environment-custom"
1113
}

test/env-custom/vitest-environment-custom/index.ts

+7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import vm from 'node:vm'
2+
import debug from 'debug'
23
import type { Environment } from 'vitest'
34

5+
// test that external packages (debug) are loaded correctly
6+
const log = debug('test:env')
7+
48
export default <Environment>{
59
name: 'custom',
610
transformMode: 'ssr',
@@ -28,6 +32,9 @@ export default <Environment>{
2832
teardown() {
2933
delete global.testEnvironment
3034
delete global.option
35+
36+
if (global.__exists)
37+
log('should not log')
3138
},
3239
}
3340
},

0 commit comments

Comments
 (0)