Implement calendar module

This commit is contained in:
ginnoir
2026-05-06 03:10:28 -05:00
parent 8cc2ef0732
commit 744c1119a9
18 changed files with 1414 additions and 32 deletions
+37
View File
@@ -0,0 +1,37 @@
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();
});