import { expect, type Page, test } from "@playwright/test" async function signInAsAdmin(page: Page) { await page.goto("/login") await page.getByLabel("Username").fill("admin") await page.getByLabel("Password").fill("admin-password") await page.getByRole("button", { name: "Sign In" }).click() await expect(page).toHaveURL("/") } test.describe("main app smoke", () => { test("redirects unauthenticated users to login", async ({ page }) => { await page.goto("/admin/users") await expect(page).toHaveURL(/\/login/) await expect(page.getByLabel("Username")).toBeVisible() await expect(page.getByRole("button", { name: "Sign In" })).toBeVisible() }) test("signs in as seeded admin and opens the dashboard", async ({ page }) => { await signInAsAdmin(page) await expect(page.getByRole("heading", { name: "Dashboard" })).toBeVisible() await expect(page.getByText("E2E Admin")).toBeVisible() await expect( page.getByRole("link", { name: /Stock Manager/i }), ).toBeVisible() }) test("admin can open users and inventory pages", async ({ page }) => { await signInAsAdmin(page) await page.getByRole("link", { name: "Users" }).click() await expect(page).toHaveURL(/\/admin\/users/) await expect(page.getByRole("heading", { name: "Users" })).toBeVisible() await expect( page.getByRole("cell", { name: "admin@example.test" }), ).toBeVisible() await page.goto("/inventory/items") await expect(page.getByRole("heading", { name: "Items" })).toBeVisible() await expect(page.getByText("No items found.")).toBeVisible() await page.goto("/assignments") await expect( page.getByRole("heading", { name: "Assignments" }), ).toBeVisible() await expect(page.getByText("No assignments found")).toBeVisible() }) })