chore: alle Panels zu den selben Position bringen
This commit is contained in:
@@ -1,7 +0,0 @@
|
||||
// example.spec.js
|
||||
const { test, expect } = require("@playwright/test");
|
||||
|
||||
test("simple test", async ({ page }) => {
|
||||
await page.goto("https://playwright.dev");
|
||||
await expect(page).toHaveTitle(/Playwright/);
|
||||
});
|
||||
129
playwright/tests/mapcomponent.spec.js
Normal file
129
playwright/tests/mapcomponent.spec.js
Normal file
@@ -0,0 +1,129 @@
|
||||
import { test, expect } from "@playwright/test";
|
||||
|
||||
/**
|
||||
* Helper: Pan the Leaflet map by simulating a mouse drag and wait until
|
||||
* mapCenter in localStorage changes (MapComponent persists center on move/zoom).
|
||||
*
|
||||
* Note for codegen: The recorder oft erfasst Klicks statt Drag. Ersetze
|
||||
* die aufgenommenen Klicks nachträglich durch diesen Helper für verlässliches Panning.
|
||||
*/
|
||||
async function panMap(page, deltaY = -200) {
|
||||
const map = page.locator("#map");
|
||||
await map.waitFor({ state: "visible" });
|
||||
// Wait until Leaflet initializes the container class
|
||||
await page.locator("#map.leaflet-container").waitFor({ state: "visible", timeout: 20_000 });
|
||||
|
||||
const centerBefore = await page.evaluate(() => {
|
||||
try {
|
||||
const v = localStorage.getItem("mapCenter");
|
||||
return v ? JSON.parse(v) : null;
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
const box = await map.boundingBox();
|
||||
if (!box) throw new Error("Map bounding box not found");
|
||||
const startX = box.x + box.width / 2;
|
||||
const startY = box.y + box.height / 2;
|
||||
|
||||
await page.mouse.move(startX, startY);
|
||||
await page.mouse.down();
|
||||
await page.mouse.move(startX, startY + deltaY, { steps: 12 });
|
||||
await page.mouse.up();
|
||||
|
||||
await page.waitForFunction(
|
||||
prev => {
|
||||
try {
|
||||
const v = localStorage.getItem("mapCenter");
|
||||
if (!v) return false;
|
||||
if (!prev) return true; // previously null -> now set
|
||||
const c = JSON.parse(v);
|
||||
const dLat = Math.abs(c[0] - prev[0]);
|
||||
const dLng = Math.abs(c[1] - prev[1]);
|
||||
return dLat > 0.0005 || dLng > 0.0005;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
centerBefore,
|
||||
{ timeout: 15_000 }
|
||||
);
|
||||
}
|
||||
|
||||
test("MapComponent", async ({ page }) => {
|
||||
await page.goto("http://localhost:3000/?m=12&u=484");
|
||||
// 10 Sekunden warten, bis die Karte sichtbar ist
|
||||
await page.locator("#map").waitFor({ state: "visible", timeout: 10_000 });
|
||||
// Set your keys before the page loads (from your screenshot)
|
||||
await page.addInitScript(() => {
|
||||
localStorage.setItem("editMode", "false");
|
||||
localStorage.setItem("polylineVisible_m12_u484", "true");
|
||||
localStorage.setItem("currentMapId", "12");
|
||||
localStorage.setItem("currentUserId", "484");
|
||||
localStorage.setItem("mapZoom", "13");
|
||||
localStorage.setItem("kabelstreckenVisible", "false"); // legacy, not used for init
|
||||
localStorage.setItem("showBaseMapPanel", "false");
|
||||
localStorage.setItem("mapLayersVisibility_m12_u484", {
|
||||
"system-1": true,
|
||||
"system-2": false,
|
||||
"system-3": false,
|
||||
"system-5": false,
|
||||
"system-6": false,
|
||||
"system-7": false,
|
||||
"system-8": false,
|
||||
"system-9": false,
|
||||
"system-10": false,
|
||||
"system-11": false,
|
||||
"system-13": false,
|
||||
"system-30": false,
|
||||
"system-100": false,
|
||||
"system-110": false,
|
||||
"system-111": false,
|
||||
"system-200": false,
|
||||
});
|
||||
localStorage.setItem("mapCenter", [53.23938294961826, 8.21434020996094]);
|
||||
localStorage.setItem("markerLink", "undefined");
|
||||
localStorage.setItem("lastElementType", "marker");
|
||||
localStorage.setItem("polylineVisible", "false"); // global legacy
|
||||
localStorage.setItem("showAppInfoCard", "false");
|
||||
localStorage.setItem("showCoordinateInput", "false");
|
||||
localStorage.setItem("showLayersPanel", "false");
|
||||
});
|
||||
|
||||
// test steps
|
||||
await expect(
|
||||
page.locator("div").filter({ hasText: "TALASKabelstreckenULAFGSM" }).nth(3)
|
||||
).toBeVisible();
|
||||
await page.getByRole("button", { name: "Layer-Panel ausblenden" }).click();
|
||||
await page.getByRole("button", { name: "Layer-Panel einblenden" }).click();
|
||||
await expect(
|
||||
page.locator("div").filter({ hasText: "TALASKabelstreckenULAFGSM" }).nth(3)
|
||||
).toBeVisible();
|
||||
await page.getByRole("button", { name: "Layer-Panel ausblenden" }).click();
|
||||
await expect(page.getByRole("button", { name: "Info ausblenden" })).toBeVisible();
|
||||
await page.getByRole("button", { name: "Info ausblenden" }).click();
|
||||
await page.getByRole("button", { name: "Info einblenden" }).click();
|
||||
await expect(page.locator("div").filter({ hasText: "TALAS.Map Version" }).nth(3)).toBeVisible();
|
||||
await page.getByRole("button", { name: "Info ausblenden" }).click();
|
||||
// Warten, bis der Button-Text wechselt, bevor erneut geklickt wird
|
||||
await expect(page.getByRole("button", { name: "Info einblenden" })).toBeVisible({
|
||||
timeout: 10000,
|
||||
});
|
||||
await page.getByRole("button", { name: "Info einblenden" }).click();
|
||||
await expect(page.locator("div").filter({ hasText: "TALAS.Map Version" }).nth(3)).toBeVisible();
|
||||
await page.getByRole("button", { name: "Koordinatensuche einblenden" }).click();
|
||||
await expect(page.locator("form")).toBeVisible();
|
||||
await page.getByRole("button", { name: "Koordinatensuche ausblenden" }).click();
|
||||
await page.getByRole("button", { name: "Info ausblenden" }).click();
|
||||
await page.getByLabel("Marker").click();
|
||||
await expect(page.getByText("Station wählenBitte wählen…")).toBeVisible();
|
||||
await page.getByRole("combobox").selectOption("50977");
|
||||
await page.getByLabel("Marker").click();
|
||||
await page.getByRole("combobox").selectOption("50986");
|
||||
await page.getByLabel("Marker").click();
|
||||
await page.getByLabel("Marker").click();
|
||||
await page.getByLabel("Marker").click();
|
||||
await page.getByRole("combobox").selectOption("50977");
|
||||
await page.getByRole("button", { name: "Karte auf Standardansicht" }).click();
|
||||
});
|
||||
Reference in New Issue
Block a user