import { expect, test, type Page } from "@playwright/test"; async function ensureSignedIn(page: Page) { await page.goto("/"); const devLogin = page.getByRole("button", { name: "Dev login" }); if (await devLogin.isVisible().catch(() => false)) { await devLogin.click(); await page.waitForURL((url) => url.pathname === "/"); } await expect(page.getByRole("heading", { name: "Dashboard" })).toBeVisible(); } test.describe("quick-add create UI", () => { test("FAB opens new note dialog on dashboard", async ({ page }) => { await ensureSignedIn(page); await page.getByRole("button", { name: "Quick add" }).click(); await expect(page.getByRole("dialog", { name: "Quick add" })).toBeVisible(); await page.getByRole("button", { name: "New note" }).click(); await expect(page).toHaveURL("/"); await expect(page.getByRole("dialog", { name: "New note" })).toBeVisible(); await expect(page.getByLabel("Title")).toBeVisible(); await expect(page.getByLabel("Body")).toBeVisible(); await expect(page.getByRole("button", { name: "Save note" })).toBeVisible(); }); test("command palette opens new event dialog on dashboard", async ({ page }) => { await ensureSignedIn(page); const isMac = await page.evaluate(() => /Mac|iPhone|iPad|iPod/.test(navigator.platform)); await page.keyboard.press(isMac ? "Meta+k" : "Control+k"); await expect(page.getByRole("dialog", { name: "Command palette" })).toBeVisible(); await page.getByRole("option", { name: /New event/i }).click(); await expect(page).toHaveURL("/"); await expect(page.getByRole("dialog", { name: "New event" })).toBeVisible(); await expect(page.getByLabel("Title")).toBeVisible(); await expect(page.getByRole("button", { name: "Save event" })).toBeVisible(); }); });