perf(test): reduce hot-suite import and setup overhead

This commit is contained in:
Peter Steinberger
2026-02-13 20:26:26 +00:00
parent 1655df7ac0
commit 2086cdfb9b
11 changed files with 312 additions and 472 deletions

View File

@@ -0,0 +1,9 @@
let pwAiLoaded = false;
export function markPwAiLoaded(): void {
pwAiLoaded = true;
}
export function isPwAiLoaded(): boolean {
return pwAiLoaded;
}

View File

@@ -1,3 +1,7 @@
import { markPwAiLoaded } from "./pw-ai-state.js";
markPwAiLoaded();
export {
type BrowserConsoleMessage,
closePageByTargetIdViaPlaywright,

View File

@@ -7,6 +7,7 @@ import { safeEqualSecret } from "../security/secret-equal.js";
import { resolveBrowserConfig, resolveProfile } from "./config.js";
import { ensureBrowserControlAuth, resolveBrowserControlAuth } from "./control-auth.js";
import { ensureChromeExtensionRelayServer } from "./extension-relay.js";
import { isPwAiLoaded } from "./pw-ai-state.js";
import { registerBrowserRoutes } from "./routes/index.js";
import { type BrowserServerState, createBrowserRouteContext } from "./server-context.js";
@@ -196,11 +197,13 @@ export async function stopBrowserControlServer(): Promise<void> {
}
state = null;
// Optional: Playwright is not always available (e.g. embedded gateway builds).
try {
const mod = await import("./pw-ai.js");
await mod.closePlaywrightBrowserConnection();
} catch {
// ignore
// Optional: avoid importing heavy Playwright bridge when this process never used it.
if (isPwAiLoaded()) {
try {
const mod = await import("./pw-ai.js");
await mod.closePlaywrightBrowserConnection();
} catch {
// ignore
}
}
}