mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-03 03:03:24 -04:00
perf(test): eliminate resetModules via injectable seams
This commit is contained in:
@@ -1,8 +1,23 @@
|
||||
import { describe, expect, it, vi } from "vitest";
|
||||
import { closePlaywrightBrowserConnection, getPageForTargetId } from "./pw-session.js";
|
||||
|
||||
const connectOverCdpMock = vi.fn();
|
||||
const getChromeWebSocketUrlMock = vi.fn();
|
||||
|
||||
vi.mock("playwright-core", () => ({
|
||||
chromium: {
|
||||
connectOverCDP: (...args: unknown[]) => connectOverCdpMock(...args),
|
||||
},
|
||||
}));
|
||||
|
||||
vi.mock("./chrome.js", () => ({
|
||||
getChromeWebSocketUrl: (...args: unknown[]) => getChromeWebSocketUrlMock(...args),
|
||||
}));
|
||||
|
||||
describe("pw-session getPageForTargetId", () => {
|
||||
it("falls back to the only page when CDP session attachment is blocked (extension relays)", async () => {
|
||||
vi.resetModules();
|
||||
connectOverCdpMock.mockReset();
|
||||
getChromeWebSocketUrlMock.mockReset();
|
||||
|
||||
const pageOn = vi.fn();
|
||||
const contextOn = vi.fn();
|
||||
@@ -31,24 +46,16 @@ describe("pw-session getPageForTargetId", () => {
|
||||
close: browserClose,
|
||||
} as unknown as import("playwright-core").Browser;
|
||||
|
||||
vi.doMock("playwright-core", () => ({
|
||||
chromium: {
|
||||
connectOverCDP: vi.fn(async () => browser),
|
||||
},
|
||||
}));
|
||||
connectOverCdpMock.mockResolvedValue(browser);
|
||||
getChromeWebSocketUrlMock.mockResolvedValue(null);
|
||||
|
||||
vi.doMock("./chrome.js", () => ({
|
||||
getChromeWebSocketUrl: vi.fn(async () => null),
|
||||
}));
|
||||
|
||||
const mod = await import("./pw-session.js");
|
||||
const resolved = await mod.getPageForTargetId({
|
||||
const resolved = await getPageForTargetId({
|
||||
cdpUrl: "http://127.0.0.1:18792",
|
||||
targetId: "NOT_A_TAB",
|
||||
});
|
||||
expect(resolved).toBe(page);
|
||||
|
||||
await mod.closePlaywrightBrowserConnection();
|
||||
await closePlaywrightBrowserConnection();
|
||||
expect(browserClose).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user