Skip to content

feat: add E2E Playwright tests for booking flow#74

Draft
devin-ai-integration[bot] wants to merge 1 commit into
mainfrom
devin/1782448632-booking-flow-e2e-tests
Draft

feat: add E2E Playwright tests for booking flow#74
devin-ai-integration[bot] wants to merge 1 commit into
mainfrom
devin/1782448632-booking-flow-e2e-tests

Conversation

@devin-ai-integration

Copy link
Copy Markdown

What does this PR do?

Adds a new Playwright E2E test file (apps/web/playwright/booking-flow.e2e.ts) covering the public booking flow with 7 tests across 3 describe blocks:

Public page navigation:

  • Navigate to a user's public booking page, verify event types are visible
  • Select a time slot, verify the attendee form renders

Attendee details and confirmation:

  • Fill in custom attendee name/email, confirm booking, verify success page shows correct attendee info
  • Full end-to-end booking using bookTimeSlot helper, verify success page

Additional options:

  • Book with notes field populated
  • Book with additional guest emails
  • Verify booking title is displayed on success page

Uses the existing test fixtures (users.create, users.deleteAll) and helpers (selectFirstAvailableTimeSlotNextMonth, bookTimeSlot, confirmBooking) — no new dependencies.

Visual Demo

Video Demo:

Booking flow E2E test run

Mandatory Tasks

  • I have self-reviewed the code.
  • N/A — no documentation changes needed for test-only additions.
  • I confirm automated tests are in place that prove my fix is effective or that my feature works.

How should this be tested?

# Start the dev server
yarn dev

# Run just the booking flow tests
PLAYWRIGHT_HEADLESS=1 yarn e2e apps/web/playwright/booking-flow.e2e.ts
  • Requires a running PostgreSQL database with seeded data (yarn workspace @calcom/prisma db-seed)
  • No special environment variables beyond the standard .env setup
  • Expected: all 7 tests pass (~12s headless, ~30s headed)

Checklist

  • My code follows the style guidelines of this project
  • I have checked that my changes generate no new warnings

Link to Devin session: https://partner-workshops.devinenterprise.com/sessions/4d0b0df78ed9415d87251b612a91945d
Requested by: @bsmitches

@bsmitches bsmitches self-assigned this Jun 26, 2026
@devin-ai-integration

Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

Open in Devin Review

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚩 Significant overlap with existing booking-pages.e2e.ts tests

Several tests in this new file closely duplicate scenarios already covered in apps/web/playwright/booking-pages.e2e.ts. For example, the "can book with additional guests" test (line 95-113) mirrors the existing "can book with multiple guests" test at apps/web/playwright/booking-pages.e2e.ts:340-363, and the "can complete the full booking flow end-to-end" test (line 63-75) effectively does what bookFirstEvent already tests at apps/web/playwright/booking-pages.e2e.ts:157-159. This isn't a bug, but it adds E2E execution time without clear incremental coverage. Worth clarifying whether this file is intended to replace sections of booking-pages.e2e.ts or serve a distinct purpose.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good observation. This file is intended as a self-contained, focused E2E suite specifically for the public booking flow (navigate → select slot → fill details → confirm). While there is some overlap with booking-pages.e2e.ts, that file covers a broader set of concerns (SSR/OG tags, special characters, prefill, layouts, reschedule, cancellation, slot reservation).

This file groups the core happy-path booking scenarios in one place for readability. If the team prefers consolidating into booking-pages.e2e.ts to avoid the extra execution time, happy to refactor — leaving as-is for now since the overlap is partial and the intent is distinct.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant