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", { exact: true }).fill(calendarName); await page.getByRole("button", { name: "Create calendar" }).click(); await expect(page.getByLabel(`${calendarName} name`)).toBeVisible(); await page.getByRole("button", { name: "New event" }).click(); await page.getByLabel("Title", { exact: true }).fill(eventTitle); await page.getByLabel("Start", { exact: true }).fill("2026-05-15T09:00"); await page.getByLabel("End", { exact: true }).fill("2026-05-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", { exact: true }).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.getByLabel(`${renamedCalendarName} name`)).toBeVisible(); await page.getByRole("button", { name: `Delete ${renamedCalendarName}` }).click(); await expect(page.getByLabel(`${renamedCalendarName} name`)).toBeHidden(); });