import { test, expect } from "@playwright/test"; test.describe("Organization section", () => { test("pricing page loads with three pricing cards", async ({ page }) => { await page.goto("/organization/pricing"); await page.waitForSelector(".org-shell", { timeout: 15_000 }); const cards = page.locator(".pricing-card"); await expect(cards).toHaveCount(3); }); test("pricing cards show Starter, Team, Enterprise tiers", async ({ page, }) => { await page.goto("/organization/pricing"); await page.waitForSelector(".org-shell", { timeout: 15_000 }); await expect(page.locator(".pricing-card", { hasText: "Starter" })).toBeVisible(); await expect(page.locator(".pricing-card", { hasText: "Team" })).toBeVisible(); await expect(page.locator(".pricing-card", { hasText: "Enterprise" })).toBeVisible(); }); test("organization dashboard loads with billing stats", async ({ page }) => { await page.goto("/organization/dashboard"); await page.waitForSelector(".org-dashboard-page", { timeout: 15_000 }); await expect(page.locator(".page-header")).toContainText("Organization"); await expect(page.locator(".org-stats-bar")).toBeVisible(); await expect(page.locator(".org-stat").first()).toBeVisible(); }); test("member table is visible on org dashboard", async ({ page }) => { await page.goto("/organization/dashboard"); await page.waitForSelector(".org-dashboard-page", { timeout: 15_000 }); await expect(page.locator(".org-table")).toBeVisible(); await expect(page.locator(".org-table thead")).toContainText("Name"); await expect(page.locator(".org-table thead")).toContainText("Email"); await expect(page.locator(".org-table thead")).toContainText("Role"); }); });