import { expect, type Page, test } from "@playwright/test" async function setEnglishLocaleCookie(page: Page, baseURL?: string) { await page.context().addCookies([ { name: "stock-manager-locale", value: "en", url: baseURL ?? "http://127.0.0.1:3100", }, ]) } async function signInAsAdmin(page: Page, baseURL?: string) { await setEnglishLocaleCookie(page, baseURL) 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 ({ baseURL, page, }) => { await setEnglishLocaleCookie(page, baseURL) 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 ({ baseURL, page, }) => { await signInAsAdmin(page, baseURL) 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 ({ baseURL, page, }) => { await signInAsAdmin(page, baseURL) 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() }) })