From 2bfbddb81f8368227966b7ca6db0563e1571bb77 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Fri, 3 Apr 2026 18:55:47 +0900 Subject: [PATCH] perf(browser): remove duplicate heavy test wrappers --- .../browser/server-context.remote-tab-ops.test.ts | 2 -- .../browser/src/node-host/invoke-browser.test.ts | 15 +++++++++------ .../browser/src/node-host/invoke-browser.ts | 6 ++++++ .../fixtures/test-memory-hotspots.extensions.json | 4 ---- 4 files changed, 15 insertions(+), 12 deletions(-) delete mode 100644 extensions/browser/src/browser/server-context.remote-tab-ops.test.ts diff --git a/extensions/browser/src/browser/server-context.remote-tab-ops.test.ts b/extensions/browser/src/browser/server-context.remote-tab-ops.test.ts deleted file mode 100644 index 358ffd8911b..00000000000 --- a/extensions/browser/src/browser/server-context.remote-tab-ops.test.ts +++ /dev/null @@ -1,2 +0,0 @@ -import "./server-context.remote-profile-tab-ops.suite.js"; -import "./server-context.tab-selection-state.suite.js"; diff --git a/extensions/browser/src/node-host/invoke-browser.test.ts b/extensions/browser/src/node-host/invoke-browser.test.ts index 8c63ad45324..b35727fc0a2 100644 --- a/extensions/browser/src/node-host/invoke-browser.test.ts +++ b/extensions/browser/src/node-host/invoke-browser.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from "vitest"; +import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; const controlServiceMocks = vi.hoisted(() => ({ createBrowserControlContext: vi.fn(() => ({ control: true })), @@ -36,14 +36,18 @@ vi.mock("../core-api.js", async () => ({ startBrowserControlServiceFromConfig: controlServiceMocks.startBrowserControlServiceFromConfig, })); +let resetBrowserProxyCommandStateForTests: typeof import("./invoke-browser.js").resetBrowserProxyCommandStateForTests; let runBrowserProxyCommand: typeof import("./invoke-browser.js").runBrowserProxyCommand; +beforeAll(async () => { + ({ resetBrowserProxyCommandStateForTests, runBrowserProxyCommand } = + await import("./invoke-browser.js")); +}); + describe("runBrowserProxyCommand", () => { - beforeEach(async () => { - // No-isolate runs can reuse a cached invoke-browser module that was loaded - // via node-host entrypoints before this file's mocks were declared. + beforeEach(() => { vi.useRealTimers(); - vi.resetModules(); + resetBrowserProxyCommandStateForTests(); dispatcherMocks.dispatch.mockReset(); dispatcherMocks.createBrowserRouteDispatcher.mockReset().mockImplementation(() => ({ dispatch: dispatcherMocks.dispatch, @@ -58,7 +62,6 @@ describe("runBrowserProxyCommand", () => { enabled: true, defaultProfile: "openclaw", }); - ({ runBrowserProxyCommand } = await import("./invoke-browser.js")); configMocks.loadConfig.mockReturnValue({ browser: {}, nodeHost: { browserProxy: { enabled: true, allowProfiles: [] as string[] } }, diff --git a/extensions/browser/src/node-host/invoke-browser.ts b/extensions/browser/src/node-host/invoke-browser.ts index 3b4a1d2eb30..6c054679f35 100644 --- a/extensions/browser/src/node-host/invoke-browser.ts +++ b/extensions/browser/src/node-host/invoke-browser.ts @@ -51,6 +51,12 @@ function resolveBrowserProxyConfig() { let browserControlReady: Promise | null = null; +// Keep the production singleton but give tests a cheap reset seam so they do +// not need to reload the entire module graph between cases. +export function resetBrowserProxyCommandStateForTests(): void { + browserControlReady = null; +} + async function ensureBrowserControlService(): Promise { if (browserControlReady) { return browserControlReady; diff --git a/test/fixtures/test-memory-hotspots.extensions.json b/test/fixtures/test-memory-hotspots.extensions.json index 7d193963eb3..edba776902b 100644 --- a/test/fixtures/test-memory-hotspots.extensions.json +++ b/test/fixtures/test-memory-hotspots.extensions.json @@ -12,10 +12,6 @@ "deltaKb": 2474639, "sources": ["checks-fast-extensions:2026-04-03"] }, - "extensions/browser/src/browser/server-context.remote-tab-ops.test.ts": { - "deltaKb": 1855980, - "sources": ["checks-fast-extensions:2026-04-03"] - }, "extensions/acpx/src/runtime.test.ts": { "deltaKb": 1824522, "sources": ["checks-fast-extensions:2026-04-03"]