import { expect, test } from "@playwright/test"; test.describe("Admin Pages", () => { test.beforeEach(async ({ page }) => { await page.goto("/auth/signin"); await page.fill('input[type="email"]', "admin@capakraken.dev"); await page.fill('input[type="password"]', "admin123"); await page.click('button[type="submit"]'); await expect(page).toHaveURL(/\/(dashboard|resources)/); }); test("settings page loads", async ({ page }) => { await page.goto("/admin/settings"); await page.waitForLoadState("networkidle"); await expect(page.locator("h1", { hasText: /System Settings/i })).toBeVisible({ timeout: 10000 }); }); test("users page loads with user list", async ({ page }) => { await page.goto("/admin/users"); await page.waitForLoadState("networkidle"); await expect(page.locator("h1", { hasText: /User Management/i })).toBeVisible({ timeout: 10000 }); // Should show a table with at least the admin user await expect(page.locator("table")).toBeVisible({ timeout: 10000 }); await expect(page.locator("text=admin@capakraken.dev")).toBeVisible({ timeout: 10000 }); }); test("roles page loads", async ({ page }) => { await page.goto("/roles"); await page.waitForLoadState("networkidle"); await expect( page.locator("h1").filter({ hasText: /Roles/i }), ).toBeVisible({ timeout: 10000 }); // Should show table or list of roles await expect( page.locator("table").or(page.locator("text=No roles")), ).toBeVisible({ timeout: 10000 }); }); test("blueprints page loads", async ({ page }) => { await page.goto("/admin/blueprints"); await page.waitForLoadState("networkidle"); await expect( page.locator("h1").filter({ hasText: /Blueprints/i }), ).toBeVisible({ timeout: 10000 }); // Should show blueprint cards or list from seed data await expect( page.locator("table") .or(page.locator("text=3D Content Production")) .or(page.locator("text=No blueprints")), ).toBeVisible({ timeout: 10000 }); }); });