import type { Page } from '@playwright/test'; import { expect } from '@playwright/test'; const ADMIN_USERNAME = process.env.E2E_ADMIN_USERNAME ?? 'admin'; const ADMIN_PASSWORD = process.env.E2E_ADMIN_PASSWORD ?? 'admin'; // Drive the login form like a real user. globalSetup already saves a // storageState for the shared admin, so most tests don't need this — // it's reserved for specs that explicitly cover the login UI. export async function loginAsAdmin(page: Page): Promise { await page.goto('/admin/login'); await page.getByLabel('Username').fill(ADMIN_USERNAME); await page.getByLabel('Password').fill(ADMIN_PASSWORD); await page.getByRole('button', { name: /sign in/i }).click(); await expect(page).toHaveURL(/\/admin\/apps$/); } export async function logout(page: Page): Promise { await page.getByRole('button', { name: /logout/i }).click(); await expect(page).toHaveURL(/\/admin\/login$/); }