Files
Solaire/tests/e2e/dashboard.spec.ts
oceans2alaska 49f2c28a46
Some checks are pending
CI / verify (push) Waiting to run
Add interactive analytics drill-downs
Make demo search, filters, exports, and controls functional while exposing dedicated KPI detail pages with tested breakdowns.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-25 13:14:22 -07:00

39 lines
1.8 KiB
TypeScript

import { expect, test } from "@playwright/test";
test("shows inventory intelligence overview", async ({ page }) => {
await page.goto("/");
await expect(page.getByRole("heading", { name: "Good morning, Nora" })).toBeVisible();
await expect(page.getByText("Inventory value")).toBeVisible();
await expect(page.getByText("Freshness watchlist")).toBeVisible();
});
test("opens every overview metric drill-down", async ({ page }) => {
const metrics = [
{ label: "Inventory value", path: "/metrics/inventory-value", heading: "Inventory value" },
{ label: "Revenue · 30 days", path: "/metrics/revenue", heading: "Revenue · 30 days" },
{ label: "At-risk exposure", path: "/metrics/at-risk", heading: "At-risk exposure" },
{ label: "Average freshness", path: "/metrics/freshness", heading: "Average freshness" },
];
for (const metric of metrics) {
await page.goto("/");
await page.getByRole("link", { name: `View details for ${metric.label}` }).click();
await expect(page).toHaveURL(metric.path);
await expect(page.getByRole("heading", { name: metric.heading })).toBeVisible();
}
});
test("moves from inventory to a product", async ({ page }) => {
await page.goto("/inventory");
await expect(page.getByRole("heading", { name: "Inventory" })).toBeVisible();
await page.getByRole("link", { name: "Organic Strawberries" }).first().click();
await expect(page.getByRole("heading", { name: "Organic Strawberries" })).toBeVisible();
});
test("reviews a recommendation", async ({ page }) => {
await page.goto("/recommendations");
await expect(page.getByRole("heading", { name: "Recommendations" })).toBeVisible();
await page.getByRole("button", { name: "Reviewed" }).first().click();
await expect(page.getByText("reviewed").first()).toBeVisible();
});