mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 23:14:32 +00:00
test: stabilize pw-session cdp mocking in parallel runs
This commit is contained in:
@@ -1,7 +1,11 @@
|
|||||||
|
import { chromium } from "playwright-core";
|
||||||
import { afterEach, describe, expect, it, vi } from "vitest";
|
import { afterEach, describe, expect, it, vi } from "vitest";
|
||||||
|
import * as chromeModule from "./chrome.js";
|
||||||
import { InvalidBrowserNavigationUrlError } from "./navigation-guard.js";
|
import { InvalidBrowserNavigationUrlError } from "./navigation-guard.js";
|
||||||
import { closePlaywrightBrowserConnection, createPageViaPlaywright } from "./pw-session.js";
|
import { closePlaywrightBrowserConnection, createPageViaPlaywright } from "./pw-session.js";
|
||||||
import { connectOverCdpMock, getChromeWebSocketUrlMock } from "./pw-session.mock-setup.js";
|
|
||||||
|
const connectOverCdpSpy = vi.spyOn(chromium, "connectOverCDP");
|
||||||
|
const getChromeWebSocketUrlSpy = vi.spyOn(chromeModule, "getChromeWebSocketUrl");
|
||||||
|
|
||||||
function installBrowserMocks() {
|
function installBrowserMocks() {
|
||||||
const pageOn = vi.fn();
|
const pageOn = vi.fn();
|
||||||
@@ -43,15 +47,15 @@ function installBrowserMocks() {
|
|||||||
close: browserClose,
|
close: browserClose,
|
||||||
} as unknown as import("playwright-core").Browser;
|
} as unknown as import("playwright-core").Browser;
|
||||||
|
|
||||||
connectOverCdpMock.mockResolvedValue(browser);
|
connectOverCdpSpy.mockResolvedValue(browser);
|
||||||
getChromeWebSocketUrlMock.mockResolvedValue(null);
|
getChromeWebSocketUrlSpy.mockResolvedValue(null);
|
||||||
|
|
||||||
return { pageGoto, browserClose };
|
return { pageGoto, browserClose };
|
||||||
}
|
}
|
||||||
|
|
||||||
afterEach(async () => {
|
afterEach(async () => {
|
||||||
connectOverCdpMock.mockReset();
|
connectOverCdpSpy.mockReset();
|
||||||
getChromeWebSocketUrlMock.mockReset();
|
getChromeWebSocketUrlSpy.mockReset();
|
||||||
await closePlaywrightBrowserConnection().catch(() => {});
|
await closePlaywrightBrowserConnection().catch(() => {});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,15 @@
|
|||||||
|
import { chromium } from "playwright-core";
|
||||||
import { describe, expect, it, vi } from "vitest";
|
import { describe, expect, it, vi } from "vitest";
|
||||||
|
import * as chromeModule from "./chrome.js";
|
||||||
import { closePlaywrightBrowserConnection, getPageForTargetId } from "./pw-session.js";
|
import { closePlaywrightBrowserConnection, getPageForTargetId } from "./pw-session.js";
|
||||||
import { connectOverCdpMock, getChromeWebSocketUrlMock } from "./pw-session.mock-setup.js";
|
|
||||||
|
const connectOverCdpSpy = vi.spyOn(chromium, "connectOverCDP");
|
||||||
|
const getChromeWebSocketUrlSpy = vi.spyOn(chromeModule, "getChromeWebSocketUrl");
|
||||||
|
|
||||||
describe("pw-session getPageForTargetId", () => {
|
describe("pw-session getPageForTargetId", () => {
|
||||||
it("falls back to the only page when CDP session attachment is blocked (extension relays)", async () => {
|
it("falls back to the only page when CDP session attachment is blocked (extension relays)", async () => {
|
||||||
connectOverCdpMock.mockReset();
|
connectOverCdpSpy.mockReset();
|
||||||
getChromeWebSocketUrlMock.mockReset();
|
getChromeWebSocketUrlSpy.mockReset();
|
||||||
|
|
||||||
const pageOn = vi.fn();
|
const pageOn = vi.fn();
|
||||||
const contextOn = vi.fn();
|
const contextOn = vi.fn();
|
||||||
@@ -34,8 +38,8 @@ describe("pw-session getPageForTargetId", () => {
|
|||||||
close: browserClose,
|
close: browserClose,
|
||||||
} as unknown as import("playwright-core").Browser;
|
} as unknown as import("playwright-core").Browser;
|
||||||
|
|
||||||
connectOverCdpMock.mockResolvedValue(browser);
|
connectOverCdpSpy.mockResolvedValue(browser);
|
||||||
getChromeWebSocketUrlMock.mockResolvedValue(null);
|
getChromeWebSocketUrlSpy.mockResolvedValue(null);
|
||||||
|
|
||||||
const resolved = await getPageForTargetId({
|
const resolved = await getPageForTargetId({
|
||||||
cdpUrl: "http://127.0.0.1:18792",
|
cdpUrl: "http://127.0.0.1:18792",
|
||||||
|
|||||||
Reference in New Issue
Block a user