From 03d34249acbf0a94d07d5c8c9c781a19ebac7258 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Wed, 31 May 2023 16:18:08 +0200 Subject: [PATCH] revert: "fix(vite-node): circular import stuck" #3418 (#3479) --- examples/mocks/src/main.js | 5 ----- examples/mocks/test/circular.spec.ts | 11 +---------- packages/vite-node/src/client.ts | 2 +- 3 files changed, 2 insertions(+), 16 deletions(-) diff --git a/examples/mocks/src/main.js b/examples/mocks/src/main.js index 5401d983c887..be77a608ffc2 100644 --- a/examples/mocks/src/main.js +++ b/examples/mocks/src/main.js @@ -1,10 +1,5 @@ import { funcA } from './A' -import { funcB } from './B' export function main() { return funcA() } - -export function mainB() { - return funcB() -} diff --git a/examples/mocks/test/circular.spec.ts b/examples/mocks/test/circular.spec.ts index e8f4651dfef9..3c34b0916105 100644 --- a/examples/mocks/test/circular.spec.ts +++ b/examples/mocks/test/circular.spec.ts @@ -1,5 +1,5 @@ import { expect, test, vi } from 'vitest' -import { main, mainB } from '../src/main.js' +import { main } from '../src/main.js' import x from '../src/export-default-circle-index' vi.mock('../src/A', async () => ({ @@ -7,21 +7,12 @@ vi.mock('../src/A', async () => ({ funcA: () => 'mockedA', })) -vi.mock('../src/B', async () => ({ - ...(await vi.importActual('../src/B')), - funcB: () => 'mockedB', -})) - vi.mock('../src/export-default-circle-b') test('can import actual inside mock factory', () => { expect(main()).toBe('mockedA') }) -test('can import in top level and inside mock factory', () => { - expect(mainB()).toBe('mockedB') -}) - test('can mock a circular dependency', () => { expect(x()).toBe(undefined) }) diff --git a/packages/vite-node/src/client.ts b/packages/vite-node/src/client.ts index 8a9065620e53..3f2fbc139791 100644 --- a/packages/vite-node/src/client.ts +++ b/packages/vite-node/src/client.ts @@ -194,7 +194,7 @@ export class ViteNodeRunner { const getStack = () => `stack:\n${[...callstack, fsPath].reverse().map(p => ` - ${p}`).join('\n')}` // check circular dependency - if (callstack.includes(fsPath) || callstack.some(c => this.moduleCache.get(c).importers?.has(fsPath)) || mod.importers.has(importee)) { + if (callstack.includes(fsPath) || callstack.some(c => this.moduleCache.get(c).importers?.has(fsPath))) { if (mod.exports) return mod.exports }