Add Playwright test suite (51 tests, all passing)
Deploy to Dev / Deploy & Smoke Test (push) Successful in 23s

- tests/api.spec.js: 17 tests covering public booking API and admin CRUD
  (health, POST bookings, auth rejection, stats, filters, PATCH, CSV export)
- tests/booking.spec.js: 12 tests covering the 7-step booking wizard
  (open/close, date validation, step progression, contract scroll+signature,
  payment checkbox, full end-to-end booking flow)
- tests/dashboard.spec.js: 15 tests covering the admin dashboard
  (login, wrong passphrase, Enter key, sign out, overview stats, calendar
  month nav, bookings table, search filter, row expand, CSV download)
- tests/portfolio.spec.js: 7 tests covering the portfolio site
  (nav, book button, portfolio section, config, health, theme color)
- playwright.config.js: Chromium headless, BASE_URL + ADMIN_SECRET via env
- Fix dangling client-email input outside step-panel (was visible, making
  the booking modal taller and hiding the Next button in headless mode)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-07-08 22:57:49 -06:00
parent 643e5afdc8
commit 4aa534d1f7
9 changed files with 742 additions and 5 deletions
+2 -5
View File
@@ -1537,15 +1537,12 @@
</div>
<!-- REMOVED step-7 confirm panel — client info now in step 5 -->
<!-- keep a dummy anchor so old references still resolve -->
<!-- keep dummy IDs for any lingering JS references -->
<div style="display:none">
<span id="summary-date"></span><span id="summary-type"></span>
<span id="summary-length"></span><span id="summary-location"></span>
<input id="REMOVED_client-name">
</div>
<div class="booking-field">
<label class="booking-label" for="client-email">Email Address</label>
<input type="email" class="booking-input" id="client-email" placeholder="your@email.com" autocomplete="email">
<input id="client-email-removed">
</div>
<!-- Success -->