feat: refine supply map layers and workbench branding

This commit is contained in:
2026-10-27 17:56:38 +08:00
parent 6983ba03f1
commit 4f0f34f460
23 changed files with 948 additions and 171 deletions
+13
View File
@@ -36,6 +36,12 @@ test("loads SCADA from the backend API and aligns map features by device_id", as
const deviceRequest = await deviceRequestPromise;
expect(deviceRequest.headers()["x-project-id"]).toBe(TEST_PROJECT_ID);
await expect.poll(() => page.evaluate(() => Boolean(
globalThis.__waterNetworkMap?.getLayer("scada-pressure-symbol")
))).toBe(true);
await page.evaluate(() => globalThis.__waterNetworkMap!.jumpTo({
center: [121.5, 30.9], zoom: 13
}));
await expect.poll(async () => page.evaluate(() => {
const map = globalThis.__waterNetworkMap;
if (!map) return [];
@@ -74,6 +80,7 @@ test("shows data-dependent layer controls only when GeoServer reports features",
await expect(layerTool).toBeEnabled();
await layerTool.click();
await expect(page.getByRole("button", { name: /^阀门/ })).toBeVisible();
await expect(page.getByRole("button", { name: /^阀门/ })).toContainText("符号自动避让");
await expect(page.getByRole("button", { name: /^水库/ })).toBeVisible();
await expect(page.getByRole("button", { name: /^水泵/ })).toBeVisible();
await expect(page.getByRole("button", { name: /^水箱/ })).toBeVisible();
@@ -111,6 +118,12 @@ test("shows data-dependent layer controls only when GeoServer reports features",
});
expect(layerOrder[0]).toBeGreaterThanOrEqual(0);
expect(layerOrder[0]).toBeLessThan(layerOrder[1]);
const valveMinZooms = await page.evaluate(() => {
const map = globalThis.__waterNetworkMap;
return ["valves-symbol", "valves-hit", "workbench-value-label-valves"]
.map((layerId) => map?.getLayer(layerId)?.minzoom);
});
expect(valveMinZooms).toEqual([13, 13, 13]);
});
test("loads required map layers while optional layer probes are still pending", async ({ page }) => {