import type { Page } from "@playwright/test"; import { mockScadaApi } from "./mock-scada-api"; // UI-only tests still need the authorized project lookup used by Agent API calls. export async function mockWorkbenchContext( page: Page, runtimeSnapshot?: unknown, projectPresentation?: { metadata: unknown; accessContext: unknown }, analysisRuns: Record = {}, analysisHistory: unknown[] = [], options: { runtimeMode?: "auto" | "demo" | "history" | "backend"; tiandituToken?: string; } = {} ) { await mockScadaApi( page, [], runtimeSnapshot, [], projectPresentation, analysisRuns, analysisHistory ); await page.route("**/runtime-config.js", (route) => route.fulfill({ contentType: "application/javascript", body: `globalThis.__TJWATER_CONFIG__ = ${JSON.stringify({ TJWATER_AUTH_MODE: "disabled", TJWATER_SERVER_API_BASE_URL: "https://tjwater-api.invalid", TJWATER_AGENT_API_BASE_URL: "http://127.0.0.1:8787", TJWATER_MAP_URL: "https://workbench-map.invalid/geoserver", TJWATER_GEOSERVER_WORKSPACE: "tjwater_next", TJWATER_MAPBOX_ACCESS_TOKEN: "", TJWATER_TIANDITU_TOKEN: options.tiandituToken ?? "", TJWATER_WORKBENCH_RUNTIME_MODE: options.runtimeMode ?? "auto", TJWATER_ENABLE_MSW: "false" })};` }) ); await page.route("https://workbench-map.invalid/**", (route) => route.fulfill({ status: 204 })); }