import { test, expect, seed } from "./fixtures"; test.describe("public pages", () => { test("events list shows events, with the multi-day summary", async ({ page }) => { await page.goto("/events"); await expect(page.getByRole("heading", { name: "All Events" })).toBeVisible(); await expect(page.getByText("E2E Free Evening")).toBeVisible(); const course = page.locator("div.border.rounded-xl", { hasText: "E2E Alpha Course" }); await expect(course.getByText(/5 sessions · /)).toBeVisible(); }); test("a multi-day event page shows the schedule and the late-joiner price", async ({ page }) => { await page.goto(`/events/${seed().events.course}`); await expect(page.getByRole("heading", { name: "E2E Alpha Course" })).toBeVisible(); const schedule = page.locator("div.rounded-xl", { has: page.getByRole("heading", { name: "Schedule" }) }); await expect(schedule.getByText("Week 1")).toBeVisible(); await expect(schedule.getByText("Week 5")).toBeVisible(); await expect(schedule.getByText("Next")).toBeVisible(); // Week 2 is in progress, so 3 of 5 are still to come: R300 × 3/5 = R180. await expect(page.getByText(/3 of 5 sessions are still to come/).filter({ visible: true }).first()).toBeVisible(); await expect(page.getByText("R180.00").filter({ visible: true }).first()).toBeVisible(); }); test("an unknown certificate code is reported as not found", async ({ page }) => { await page.goto("/certificates/verify/ABCDE-12345"); await expect(page.getByRole("heading", { name: "Certificate not found" })).toBeVisible(); }); });