From bfc49d199d40a9a86b52edec1b47be79890ba2ae Mon Sep 17 00:00:00 2001 From: Lucas Berger Date: Fri, 12 Jun 2026 08:23:10 -0400 Subject: [PATCH] chore(14-01): update spec headers + README for desktop profile, cosmetic CI step rename - Updated calendar.spec.ts header to list all three profiles (iphone/pixel/desktop) - Updated lists.spec.ts header to list all three profiles (iphone/pixel/desktop) - Updated e2e/README.md preamble to add 'Desktop Chrome (1280x720)' - Added --project=desktop example to README run-commands block - Updated README full-suite command comment to name all three profiles - Cosmetic: ci.yml step-name and comment updated to mention desktop (no plumbing change) - Full suite verified: 85 passed, 5 skipped (3 desktop geometry + 2 parity guards), 0 failed --- .gitea/workflows/ci.yml | 4 ++-- apps/pwa/e2e/README.md | 5 +++-- apps/pwa/e2e/calendar.spec.ts | 7 ++++--- apps/pwa/e2e/lists.spec.ts | 7 ++++--- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 26afc23..a146c0a 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -252,7 +252,7 @@ jobs: # CI=true makes Playwright start Vite :5173 itself (reuseExistingServer=false), use # retries:2/workers:1, and apply reporter:'github' — which --reporter=list,html overrides # because Gitea does not render github annotations (Pitfall 5 / D-06). Both projects run. - - name: Run harness (start API + Playwright iphone + pixel) + - name: Run harness (start API + Playwright iphone + pixel + desktop) env: CI: 'true' # Use 127.0.0.1 (not localhost): the runner image resolves `localhost` to ::1 first, @@ -284,7 +284,7 @@ jobs: done echo "API ready at :3000" - # Run the Phase 7 harness across both profiles; preserve its exit code, always kill the API. + # Run the Phase 7/14 harness across all three profiles (iphone, pixel, desktop); preserve its exit code, always kill the API. # Call the pwa test:e2e script DIRECTLY (single pnpm layer) and append --reporter without a # `--` separator: `pnpm test:e2e -- ` double-forwards the `--` into # `playwright test -- `, where playwright treats --reporter as a test-file filter → diff --git a/apps/pwa/e2e/README.md b/apps/pwa/e2e/README.md index 606284f..54d2509 100644 --- a/apps/pwa/e2e/README.md +++ b/apps/pwa/e2e/README.md @@ -1,6 +1,6 @@ # E2E Test Harness -Playwright test harness for the FamilySync PWA — mobile-emulated (iPhone 14/WebKit + Pixel 7/Chromium), authenticated via `DEV_AUTH_BYPASS`, deterministically seeded, runs headlessly in CI. +Playwright test harness for the FamilySync PWA — mobile-emulated (iPhone 14/WebKit + Pixel 7/Chromium) and Desktop Chrome (1280×720), authenticated via `DEV_AUTH_BYPASS`, deterministically seeded, runs headlessly in CI. --- @@ -34,11 +34,12 @@ environment (not only the API's). Source the DB credentials from the repo-root ` set -a; source .env; set +a export DEV_AUTH_BYPASS=true DB_HOST=127.0.0.1 DB_PORT=3306 -# Full suite — both iPhone (WebKit) and Pixel (Chromium) profiles +# Full suite — iPhone (WebKit), Pixel (Chromium), Desktop Chrome profiles pnpm --filter @familysync/pwa test:e2e # Single profile (faster local iteration) pnpm --filter @familysync/pwa exec playwright test --project=pixel +pnpm --filter @familysync/pwa exec playwright test --project=desktop # Headed (local debug — shows the browser) pnpm --filter @familysync/pwa exec playwright test --headed diff --git a/apps/pwa/e2e/calendar.spec.ts b/apps/pwa/e2e/calendar.spec.ts index d73d7b1..f2d2d72 100644 --- a/apps/pwa/e2e/calendar.spec.ts +++ b/apps/pwa/e2e/calendar.spec.ts @@ -10,9 +10,10 @@ * Requires the dev stack running with DEV_AUTH_BYPASS=true (see e2e/README.md). * global-setup seeds 'Seeded Test Event' on calendar_id=10 for user_id=1. * - * Runs on both device profiles automatically (playwright.config.ts matrix): - * iphone: iPhone 14 / WebKit / 390×844 - * pixel: Pixel 7 / Chromium / 412×915 + * Runs on all three device profiles automatically (playwright.config.ts matrix): + * iphone: iPhone 14 / WebKit / 390×844 + * pixel: Pixel 7 / Chromium / 412×915 + * desktop: Desktop Chrome / Chromium / 1280×720 (all tests pass unchanged) * * Run: * pnpm --filter @familysync/pwa test:e2e diff --git a/apps/pwa/e2e/lists.spec.ts b/apps/pwa/e2e/lists.spec.ts index dedacbc..4e68743 100644 --- a/apps/pwa/e2e/lists.spec.ts +++ b/apps/pwa/e2e/lists.spec.ts @@ -13,9 +13,10 @@ * The empty state is simulated by routing /api/lists to return [] BEFORE navigation — * this keeps the seeded DB intact (T-07-11 / D-06 deterministic seed). * - * Runs on both device profiles automatically (playwright.config.ts matrix): - * iphone: iPhone 14 / WebKit / 390×844 - * pixel: Pixel 7 / Chromium / 412×915 + * Runs on all three device profiles automatically (playwright.config.ts matrix): + * iphone: iPhone 14 / WebKit / 390×844 + * pixel: Pixel 7 / Chromium / 412×915 + * desktop: Desktop Chrome / Chromium / 1280×720 (all tests pass unchanged) * * Run: * pnpm --filter @familysync/pwa test:e2e