diff --git a/apps/web/playwright/booking-pages.e2e.ts b/apps/web/playwright/booking-pages.e2e.ts index 179cbf88de..5f05463cc6 100644 --- a/apps/web/playwright/booking-pages.e2e.ts +++ b/apps/web/playwright/booking-pages.e2e.ts @@ -213,3 +213,43 @@ test.describe("pro user", () => { expect(firstSlotAvailableText).toContain("9:00"); }); }); + +test.describe("prefill", () => { + test("logged in", async ({ page, users }) => { + const prefill = await users.create({ name: "Prefill User" }); + await prefill.apiLogin(); + await page.goto("/pro/30min"); + + await test.step("from session", async () => { + await selectFirstAvailableTimeSlotNextMonth(page); + await expect(page.locator('[name="name"]')).toHaveValue(prefill.name || ""); + await expect(page.locator('[name="email"]')).toHaveValue(prefill.email); + }); + + await test.step("from query params", async () => { + const url = new URL(page.url()); + url.searchParams.set("name", testName); + url.searchParams.set("email", testEmail); + await page.goto(url.toString()); + + await expect(page.locator('[name="name"]')).toHaveValue(testName); + await expect(page.locator('[name="email"]')).toHaveValue(testEmail); + }); + }); + + test("logged out", async ({ page, users }) => { + await page.goto("/pro/30min"); + + await test.step("from query params", async () => { + await selectFirstAvailableTimeSlotNextMonth(page); + + const url = new URL(page.url()); + url.searchParams.set("name", testName); + url.searchParams.set("email", testEmail); + await page.goto(url.toString()); + + await expect(page.locator('[name="name"]')).toHaveValue(testName); + await expect(page.locator('[name="email"]')).toHaveValue(testEmail); + }); + }); +}); diff --git a/apps/web/playwright/fixtures/users.ts b/apps/web/playwright/fixtures/users.ts index abae1ebab3..0049c07f3b 100644 --- a/apps/web/playwright/fixtures/users.ts +++ b/apps/web/playwright/fixtures/users.ts @@ -358,6 +358,7 @@ const createUserFixture = (user: UserWithIncludes, page: Page) => { id: user.id, name: user.name, username: user.username, + email: user.email, eventTypes: user.eventTypes, routingForms: user.routingForms, self,