diff --git a/packages/vitest/src/utils/modules.ts b/packages/vitest/src/utils/modules.ts index 9a944b3c1a0c..5a2300e69885 100644 --- a/packages/vitest/src/utils/modules.ts +++ b/packages/vitest/src/utils/modules.ts @@ -11,12 +11,14 @@ const BUN_BUILTIN_NAMESPACE = 'bun:' // Some runtimes like Bun injects namespaced modules here, which is not a node builtin const nodeBuiltins = builtinModules.filter(id => !id.includes(':')) +const { bun: isBun, deno: isDeno } = process.versions + // TODO: Use `isBuiltin` from `node:module`, but Deno doesn't support it export function isBuiltin(id: string): boolean { - if (process.versions.deno && id.startsWith(NPM_BUILTIN_NAMESPACE)) { + if (isDeno && id.startsWith(NPM_BUILTIN_NAMESPACE)) { return true } - if (process.versions.bun && id.startsWith(BUN_BUILTIN_NAMESPACE)) { + if (isBun && id.startsWith(BUN_BUILTIN_NAMESPACE)) { return true } return isNodeBuiltin(id) @@ -47,7 +49,7 @@ export function toBuiltin(id: string): string { ) { return id } - if (process.versions.deno || process.versions.bun) { + if (isDeno || isBun) { return id } return `node:${id}` diff --git a/test/core/test/stubbed-process.test.ts b/test/core/test/stubbed-process.test.ts index 380a8ad72a37..5069143544ad 100644 --- a/test/core/test/stubbed-process.test.ts +++ b/test/core/test/stubbed-process.test.ts @@ -5,3 +5,7 @@ vi.stubGlobal('process', { badMock: true }) it('should not hang', () => { expect(1).toBe(1) }) + +it('should not crash (#9173)', async () => { + await import('./fixtures/increment') +})