import { expect, test } from "@playwright/test"; test.describe("Dashboard", () => { test.beforeEach(async ({ page }) => { await page.goto("/"); await page.waitForLoadState("networkidle"); }); test("shows GearBox heading", async ({ page }) => { await expect(page.getByText("GearBox")).toBeVisible(); }); test("shows collection card with item count of 6", async ({ page }) => { // The Collection card link contains "Items" label and value "6" const collectionCard = page .getByRole("link", { name: /collection/i }) .first(); await expect(collectionCard).toBeVisible(); await expect(collectionCard.getByText("6")).toBeVisible(); }); test("shows Collection, Planning, and Setups card headings", async ({ page, }) => { await expect( page.getByRole("heading", { name: "Collection" }), ).toBeVisible(); await expect(page.getByRole("heading", { name: "Planning" })).toBeVisible(); await expect(page.getByRole("heading", { name: "Setups" })).toBeVisible(); }); test("Collection card links to /collection", async ({ page }) => { const collectionLink = page .getByRole("link", { name: /collection/i }) .first(); await collectionLink.click(); await page.waitForLoadState("networkidle"); await expect(page).toHaveURL(/\/collection/); }); test("shows active thread count on Planning card", async ({ page }) => { // The Planning card is a link containing "Active threads" const planningCard = page.getByRole("link", { name: /planning/i }); await expect(planningCard.getByText("Active threads")).toBeVisible(); // Seed has 1 active thread await expect(planningCard.getByText("1")).toBeVisible(); }); test("shows setup count on Setups card", async ({ page }) => { // The Setups card has a heading "Setups" await expect(page.getByRole("heading", { name: "Setups" })).toBeVisible(); // Seed has 1 setup const setupsCard = page.getByRole("link", { name: /setups/i }).last(); await expect(setupsCard.getByText("1")).toBeVisible(); }); });