import { test, expect } from "@playwright/test"; /** * Happy-Path des Wehr-Bereichs: Fuhrpark, Geräte, Profil, Benutzer * (Workstream 7). * * NICHT in der Sandbox ausführbar (kein Server/DB) — deferred. Erwartet einen * angemeldeten `wehr_admin` (Fixture aus dem Test-Workstream) und befüllte * Taxonomie (Seed/Admin). */ test.describe("Verwaltung: Fuhrpark & Benutzer (Happy-Path)", () => { test.skip( !process.env.E2E_WEHR_ADMIN_STATE, "benötigt wehr_admin-Fixture (Test-Workstream)", ); test.use({ storageState: process.env.E2E_WEHR_ADMIN_STATE ?? { cookies: [], origins: [] }, }); test("Fahrzeug per Vorlage anlegen befüllt typisierte Merkmale", async ({ page, }) => { await page.goto("/verwaltung/fahrzeuge/neu"); await page.getByLabel("Fahrzeug-Vorlage").selectOption({ label: /HLF 2/ }); // Vorlagen-Merkmale werden nachgeladen (Löschwassertank, Feuerlöschpumpe …). await expect(page.getByText("Löschwassertank")).toBeVisible(); await page.getByLabel("Name").fill("HLF 2 Musterdorf"); await page.getByRole("button", { name: "Speichern" }).click(); await expect(page).toHaveURL(/\/verwaltung\/fahrzeuge$/); await expect(page.getByText("HLF 2 Musterdorf")).toBeVisible(); }); test("Gerät 'im Gerätehaus' anlegen (keine Fahrzeug-Zuordnung)", async ({ page, }) => { await page.goto("/verwaltung/geraete/neu"); await page.getByLabel("Name").fill("Tragkraftspritze 1"); await page.getByLabel("Kategorie").selectOption({ index: 1 }); // Zuordnung bleibt auf 'im Gerätehaus'. await page.getByRole("button", { name: "Speichern" }).click(); await expect(page).toHaveURL(/\/verwaltung\/geraete$/); await expect(page.getByText("im Gerätehaus").first()).toBeVisible(); }); test("Profil speichern zeigt Bestätigung", async ({ page }) => { await page.goto("/verwaltung/profil"); await page.getByLabel("Straße").fill("Hauptstraße 1"); await page.getByLabel("PLZ").fill("3100"); await page.getByLabel("Ort").fill("St. Pölten"); await page.getByRole("button", { name: "Speichern" }).click(); await expect(page.getByText(/gespeichert|geokodiert|geokodiert werden/)).toBeVisible(); }); test("Benutzer anlegen zeigt Einmal-Passwort", async ({ page }) => { await page.goto("/verwaltung/benutzer"); await page.getByLabel("Name").fill("Neue Person"); await page.getByLabel("E-Mail").fill("neu@ff-musterdorf.at"); await page.getByLabel("Rolle").selectOption("wehr_read"); await page.getByRole("button", { name: "Benutzer anlegen" }).click(); await expect(page.getByText(/Einmal-Passwort/)).toBeVisible(); }); });