Use the dedicated TJWATER_AGENT_URL and Responses stream protocol. Keep running turns active while users steer or queue follow-ups and edit pending delivery. Refresh the model catalog before generation and preserve approval mode selection. Integrate scoped investigation messaging/presentation, geographic place selection, current Agent composer styles and supporting workbench contracts. Validation: 77 focused Vitest checks, 21 browser cases, lint, typecheck and production build. Preserve direct Server/Agent routing and project authentication.
43 lines
1.4 KiB
TypeScript
43 lines
1.4 KiB
TypeScript
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<string, unknown> = {},
|
|
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_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 }));
|
|
}
|