import { expect, test } from "@playwright/test"; test("calendar CRUD happy path", async ({ page }) => { const suffix = Date.now().toString(); const calendarName = `E2E Calendar ${suffix}`; const renamedCalendarName = `E2E Renamed ${suffix}`; const eventTitle = `E2E Event ${suffix}`; const editedTitle = `E2E Edited ${suffix}`; await page.goto("/calendar"); await expect(page.getByRole("heading", { name: "Calendar" })).toBeVisible(); await page.getByLabel("Name").fill(calendarName); await page.getByRole("button", { name: "Create calendar" }).click(); await expect(page.getByDisplayValue(calendarName)).toBeVisible(); await page.getByRole("button", { name: "New event" }).click(); await page.getByLabel("Title").fill(eventTitle); await page.getByLabel("Start").fill("2026-06-15T09:00"); await page.getByLabel("End").fill("2026-06-15T10:00"); await page.getByRole("button", { name: "Save event" }).click(); await expect(page.getByText(eventTitle)).toBeVisible(); await page.getByText(eventTitle).click(); await page.getByLabel("Title").fill(editedTitle); await page.getByRole("button", { name: "Save event" }).click(); await expect(page.getByText(editedTitle)).toBeVisible(); await page.getByText(editedTitle).click(); await page.getByRole("button", { name: "Delete event" }).click(); await expect(page.getByText(editedTitle)).toBeHidden(); await page.getByLabel(`${calendarName} name`).fill(renamedCalendarName); await expect(page.getByDisplayValue(renamedCalendarName)).toBeVisible(); await page.getByRole("button", { name: `Delete ${renamedCalendarName}` }).click(); await expect(page.getByDisplayValue(renamedCalendarName)).toBeHidden(); });