Skip to content

Commit 03f55d7

Browse files
authored
fix(browser): fix mocking from outside of root (#7789)
1 parent 6358f21 commit 03f55d7

File tree

6 files changed

+24
-1
lines changed

6 files changed

+24
-1
lines changed

packages/mocker/src/node/resolver.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,10 @@ export class ServerMockResolver {
103103
}
104104

105105
private async resolveMockId(rawId: string, importer: string) {
106-
if (!importer.startsWith(this.server.config.root)) {
106+
if (
107+
!this.server.moduleGraph.getModuleById(importer)
108+
&& !importer.startsWith(this.server.config.root)
109+
) {
107110
importer = join(this.server.config.root, importer)
108111
}
109112
const resolved = await this.server.pluginContainer.resolveId(

test/browser/fixtures/mocking-out-of-root/project1/basic.test.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import { test, expect, vi } from 'vitest';
22
import project2 from "../project2/index.js"
3+
import "./imported-test.js"
4+
import "../project3/imported-test.js"
35

46
vi.mock("../project2/index.js", () => ({
57
default: 'project2-mocked'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { vi, test, expect } from "vitest"
2+
import lib from "./lib.js";
3+
4+
vi.mock("./lib.js", () => ({ default: "mocked" }))
5+
6+
test("project1 imported", () => {
7+
expect(lib).toBe("mocked");
8+
})
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default "lib"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { vi, test, expect } from "vitest"
2+
import lib from "./lib.js";
3+
4+
vi.mock("./lib.js", () => ({ default: "mocked" }))
5+
6+
test("project3 imported", () => {
7+
expect(lib).toBe("mocked");
8+
})
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default "lib"

0 commit comments

Comments
 (0)