import { expect, test } from "@playwright/test"; /** * Smoke test: the app loads, serves the login page, and the main form * controls are present and reachable. We deliberately avoid hitting the * real backend — this is a lightweight sanity check that catches broken * routing / bundle / asset problems before they reach production. */ test("login page renders the sign-in form", async ({ page }) => { await page.goto("/login"); await expect( page.getByRole("heading", { name: /sign in|login|welcome/i }), ).toBeVisible({ timeout: 10_000 }); const email = page.getByLabel(/email/i); const password = page.getByLabel(/password/i); await expect(email).toBeVisible(); await expect(password).toBeVisible(); await expect(page.getByRole("button", { name: /sign in|log in/i })).toBeVisible(); }); test("root redirects to login for anonymous users", async ({ page }) => { const response = await page.goto("/"); expect(response?.ok()).toBeTruthy(); await page.waitForURL(/\/login/i, { timeout: 10_000 }); });