import { test, expect } from "@playwright/test"; test.describe("coming-soon page", () => { test("renders with heading and login form", async ({ page }) => { await page.goto("/coming-soon"); await expect(page.locator("h1")).toContainText("Ghost Guild"); await expect(page.locator('input[type="email"]')).toBeVisible(); await expect( page.getByRole("button", { name: "Send Magic Link" }), ).toBeVisible(); }); test('shows "Coming Soon" text for unauthenticated visitors', async ({ page, }) => { await page.goto("/coming-soon"); await expect(page.getByText("Coming Soon")).toBeVisible(); }); }); test.describe("public routes accessible when gate is off", () => { test("home page loads", async ({ page }) => { await page.goto("/"); // Should not redirect to /coming-soon expect(page.url()).not.toContain("/coming-soon"); await expect(page.locator("h1")).toBeVisible(); }); test("events page loads", async ({ page }) => { await page.goto("/events"); expect(page.url()).not.toContain("/coming-soon"); await expect(page.locator("h1")).toContainText("Events"); }); test("join page loads", async ({ page }) => { await page.goto("/join"); expect(page.url()).not.toContain("/coming-soon"); await expect(page.locator("h1")).toContainText("Join Ghost Guild"); }); });