import { expect, test } from "@playwright/test"; test("home page loads", async ({ page }) => { const response = await page.goto("/"); expect(response?.ok()).toBeTruthy(); await expect(page.locator("h1")).toBeVisible(); }); test("login page loads", async ({ page }) => { const response = await page.goto("/login"); expect(response?.ok()).toBeTruthy(); await expect(page.getByRole("heading", { name: /Anmelden|Sign in|Log in/i })).toBeVisible(); await expect(page.getByLabel(/E-Mail|Email/i)).toBeVisible(); await expect(page.getByLabel(/^Passwort$|^Password$/i)).toBeVisible(); }); test("register page loads", async ({ page }) => { const response = await page.goto("/register"); expect(response?.ok()).toBeTruthy(); await expect( page.getByRole("heading", { name: /Konto erstellen|Create account/i }), ).toBeVisible(); await expect(page.getByLabel(/E-Mail|Email/i)).toBeVisible(); await expect(page.getByLabel(/^Passwort$|^Password$/i)).toBeVisible(); }); test("docs page loads", async ({ page }) => { const response = await page.goto("/docs"); expect(response?.ok()).toBeTruthy(); await expect( page.getByRole("heading", { name: /Dokumentation|Documentation/i }), ).toBeVisible(); }); test("API health if reachable", async ({ request }) => { const apiUrl = process.env.API_URL ?? "http://localhost:3001"; let response; try { response = await request.get(`${apiUrl}/api/v1/health/live`, { timeout: 3000 }); } catch { test.info().annotations.push({ type: "skip-reason", description: "API not reachable", }); return; } expect(response.ok()).toBeTruthy(); const body = (await response.json()) as { status?: string }; expect(body.status).toBe("ok"); });