test: reduce module reload churn

This commit is contained in:
Peter Steinberger
2026-04-20 16:26:35 +01:00
parent 911cfe2adc
commit 975b989de6
5 changed files with 67 additions and 49 deletions

View File

@@ -13,33 +13,37 @@ export type RemoteProfileTestDeps = {
originalFetch: typeof import("./server-context.remote-tab-ops.harness.js").originalFetch;
};
let remoteProfileTestDepsPromise: Promise<RemoteProfileTestDeps> | undefined;
export async function loadRemoteProfileTestDeps(): Promise<RemoteProfileTestDeps> {
vi.resetModules();
await import("./server-context.chrome-test-harness.js");
const chromeModule = await import("./chrome.js");
const { InvalidBrowserNavigationUrlError } = await import("./navigation-guard.js");
const pwAiModule = await import("./pw-ai-module.js");
const { closePlaywrightBrowserConnection } = await import("./pw-session.js");
const { createBrowserRouteContext } = await import("./server-context.js");
const {
createJsonListFetchMock,
createRemoteRouteHarness,
createSequentialPageLister,
makeState,
originalFetch,
} = await import("./server-context.remote-tab-ops.harness.js");
return {
chromeModule,
InvalidBrowserNavigationUrlError,
pwAiModule,
closePlaywrightBrowserConnection,
createBrowserRouteContext,
createJsonListFetchMock,
createRemoteRouteHarness,
createSequentialPageLister,
makeState,
originalFetch,
};
remoteProfileTestDepsPromise ??= (async () => {
await import("./server-context.chrome-test-harness.js");
const chromeModule = await import("./chrome.js");
const { InvalidBrowserNavigationUrlError } = await import("./navigation-guard.js");
const pwAiModule = await import("./pw-ai-module.js");
const { closePlaywrightBrowserConnection } = await import("./pw-session.js");
const { createBrowserRouteContext } = await import("./server-context.js");
const {
createJsonListFetchMock,
createRemoteRouteHarness,
createSequentialPageLister,
makeState,
originalFetch,
} = await import("./server-context.remote-tab-ops.harness.js");
return {
chromeModule,
InvalidBrowserNavigationUrlError,
pwAiModule,
closePlaywrightBrowserConnection,
createBrowserRouteContext,
createJsonListFetchMock,
createRemoteRouteHarness,
createSequentialPageLister,
makeState,
originalFetch,
};
})();
return await remoteProfileTestDepsPromise;
}
export function installRemoteProfileTestLifecycle(deps: RemoteProfileTestDeps): void {