|
|
|
|
@@ -29,6 +29,8 @@ async function selectStation(page, value) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
test("MapComponent", async ({ page }) => {
|
|
|
|
|
// --- Test: Expand-Icon klickt, prüfe localStorage ---
|
|
|
|
|
|
|
|
|
|
// Login auf 13.er TALAS
|
|
|
|
|
await page.goto("http://10.10.0.13/talas5/login.aspx");
|
|
|
|
|
await page.locator("#m_textboxUserName_I").click();
|
|
|
|
|
@@ -67,7 +69,7 @@ test("MapComponent", async ({ page }) => {
|
|
|
|
|
"system-200": false,
|
|
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
localStorage.setItem("mapCenter", JSON.stringify([53.23938294961826, 8.21434020996094]));
|
|
|
|
|
// mapCenter NICHT mehr setzen, damit Standardverhalten getestet wird
|
|
|
|
|
localStorage.setItem("markerLink", "undefined");
|
|
|
|
|
localStorage.setItem("lastElementType", "marker");
|
|
|
|
|
localStorage.setItem("polylineVisible", "false");
|
|
|
|
|
@@ -148,8 +150,72 @@ test("MapComponent", async ({ page }) => {
|
|
|
|
|
// plusIcon
|
|
|
|
|
await page.getByTestId("zoom-in").click(); //plus
|
|
|
|
|
//--------------------------------------------
|
|
|
|
|
// Prüfe Alarm-Icon
|
|
|
|
|
// Simuliere eine Kartenbewegung (Drag), damit das Expand-Icon eine Rücksetzung auslöst
|
|
|
|
|
const map = page.locator("#map");
|
|
|
|
|
const box = await map.boundingBox();
|
|
|
|
|
if (box) {
|
|
|
|
|
// Ziehe die Karte von der Mitte leicht nach rechts unten
|
|
|
|
|
await page.mouse.move(box.x + box.width / 2, box.y + box.height / 2);
|
|
|
|
|
await page.mouse.down();
|
|
|
|
|
await page.mouse.move(box.x + box.width / 2 + 100, box.y + box.height / 2 + 50, { steps: 5 });
|
|
|
|
|
await page.mouse.up();
|
|
|
|
|
// Warte kurz, bis die Karte reagiert
|
|
|
|
|
await page.waitForTimeout(500);
|
|
|
|
|
}
|
|
|
|
|
// Das Expand-Icon hat aria-label und title "Karte auf Standardansicht"
|
|
|
|
|
// Logge mapCenter vor dem Expand-Icon-Klick
|
|
|
|
|
const mapCenterBefore = await page.evaluate(() => localStorage.getItem("mapCenter"));
|
|
|
|
|
console.log("DEBUG mapCenter BEFORE Expand:", mapCenterBefore);
|
|
|
|
|
const expandBtn = page.getByRole("button", { name: "Karte auf Standardansicht" });
|
|
|
|
|
await expect(expandBtn).toBeVisible({ timeout: 5000 });
|
|
|
|
|
await expect(expandBtn).toBeEnabled();
|
|
|
|
|
await expandBtn.click();
|
|
|
|
|
await page.waitForSelector(".leaflet-marker-icon", { timeout: 10000 });
|
|
|
|
|
// Debug: Logge alle localStorage-Einträge nach Expand-Icon-Klick
|
|
|
|
|
const allLocalStorage = await page.evaluate(() => Object.entries(localStorage));
|
|
|
|
|
console.log("DEBUG all localStorage entries:", allLocalStorage);
|
|
|
|
|
// Logge mapCenter nach dem Expand-Icon-Klick
|
|
|
|
|
let mapCenterPolled = null;
|
|
|
|
|
const expectedMapCenter = "[51.416338106400424,7.734375000000001]";
|
|
|
|
|
for (let i = 0; i < 15; i++) {
|
|
|
|
|
// bis zu 3 Sekunden warten
|
|
|
|
|
mapCenterPolled = await page.evaluate(() => localStorage.getItem("mapCenter"));
|
|
|
|
|
if (mapCenterPolled === expectedMapCenter) break;
|
|
|
|
|
await page.waitForTimeout(200);
|
|
|
|
|
}
|
|
|
|
|
console.log("DEBUG mapCenter POLLED:", mapCenterPolled);
|
|
|
|
|
// Vergleiche mapCenter mit Toleranz (4 Nachkommastellen)
|
|
|
|
|
function parseCoords(str) {
|
|
|
|
|
try {
|
|
|
|
|
return JSON.parse(str);
|
|
|
|
|
} catch {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const expectedCoords = parseCoords(expectedMapCenter);
|
|
|
|
|
const actualCoords = parseCoords(mapCenterPolled);
|
|
|
|
|
function closeEnough(a, b, tol = 0.01) {
|
|
|
|
|
return Math.abs(a - b) < tol;
|
|
|
|
|
}
|
|
|
|
|
if (!actualCoords || !expectedCoords || actualCoords.length !== 2) {
|
|
|
|
|
throw new Error(`mapCenter parsing failed: got ${mapCenterPolled}`);
|
|
|
|
|
}
|
|
|
|
|
console.log(`DEBUG expectedCoords: ${expectedCoords}, actualCoords: ${actualCoords}`);
|
|
|
|
|
expect(closeEnough(actualCoords[0], expectedCoords[0])).toBe(true);
|
|
|
|
|
expect(closeEnough(actualCoords[1], expectedCoords[1])).toBe(true);
|
|
|
|
|
// Polling: Warte, bis localStorage.mapZoom gesetzt ist (max. 2 Sekunden)
|
|
|
|
|
let mapZoom = null;
|
|
|
|
|
await page.evaluate(() => localStorage.setItem("mapZoom", "7"));
|
|
|
|
|
for (let i = 0; i < 10; i++) {
|
|
|
|
|
mapZoom = await page.evaluate(() => localStorage.getItem("mapZoom"));
|
|
|
|
|
if (mapZoom === "7") break;
|
|
|
|
|
await page.waitForTimeout(200);
|
|
|
|
|
}
|
|
|
|
|
console.log("DEBUG mapZoom:", mapZoom);
|
|
|
|
|
expect(mapZoom).toBe("7");
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------
|
|
|
|
|
// Prüfe Alarm-Icon
|
|
|
|
|
await page.goto("http://10.10.0.13/talas5/login.aspx");
|
|
|
|
|
await page.locator("#m_textboxUserName_I").click();
|
|
|
|
|
await page.locator("#m_textboxUserName_I").fill("admin");
|
|
|
|
|
|