Adds a third desktop Playwright project (Desktop Chrome, 1280×720, no hasTouch) so the existing Phase 7 mobile-authored e2e specs also validate the desktop layout/flows in CI.
Changes (code)
playwright.config.ts: new desktop project (...devices['Desktop Chrome'], serviceWorkers: 'block', no baseURL override).
e2e/layout.spec.ts: desktop-skip the 3 mobile-only geometry tests (2× BottomTabBar safe-area, 56×56 FAB) + new desktop ≥44px toolbar-button parity assertion (D-04). No mobile assertion weakened/deleted.
e2e/calendar.spec.ts, e2e/lists.spec.ts, e2e/README.md: header/doc updates listing all three profiles.
ci.yml: cosmetic step-name comment only — the harness job already runs every project via the unchanged test:e2e invocation and installs the chromium engine Desktop Chrome uses.
Gate
Blocking (no continue-on-error). Local: pnpm test:e2e → 85 passed / 5 skipped / 0 failed across iphone + pixel + desktop. lint + typecheck + format:check + PWA unit (191) all green.
This PR opened to run the real CI desktop gate (SC-3).
Adds a third `desktop` Playwright project (Desktop Chrome, 1280×720, no hasTouch) so the existing Phase 7 mobile-authored e2e specs also validate the desktop layout/flows in CI.
## Changes (code)
- `playwright.config.ts`: new `desktop` project (`...devices['Desktop Chrome']`, `serviceWorkers: 'block'`, no baseURL override).
- `e2e/layout.spec.ts`: desktop-skip the 3 mobile-only geometry tests (2× BottomTabBar safe-area, 56×56 FAB) + new desktop ≥44px toolbar-button parity assertion (D-04). No mobile assertion weakened/deleted.
- `e2e/calendar.spec.ts`, `e2e/lists.spec.ts`, `e2e/README.md`: header/doc updates listing all three profiles.
- `ci.yml`: cosmetic step-name comment only — the harness job already runs every project via the unchanged `test:e2e` invocation and installs the chromium engine Desktop Chrome uses.
## Gate
Blocking (no `continue-on-error`). Local: `pnpm test:e2e` → 85 passed / 5 skipped / 0 failed across iphone + pixel + desktop. lint + typecheck + format:check + PWA unit (191) all green.
This PR opened to run the real CI desktop gate (SC-3).
- Added test.skip(testInfo.project.name === 'desktop') to the two safe-area-inset
BottomTabBar in-viewport tests (BottomTabBar returns null at >=768px on desktop)
- Added test.skip(testInfo.project.name === 'desktop') to the 56x56 FAB geometry test
(on desktop 'New Event' resolves to the toolbar button, not the 56px FAB)
- Added desktop-only D-04 parity test asserting 'New Event' toolbar button height >=44px
guarded by test.skip(testInfo.project.name !== 'desktop')
- Updated header jsdoc to list all three profiles including desktop
- All mobile assertions preserved (toBeGreaterThanOrEqual(56) and (44) still present)
- 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
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Adds a third
desktopPlaywright project (Desktop Chrome, 1280×720, no hasTouch) so the existing Phase 7 mobile-authored e2e specs also validate the desktop layout/flows in CI.Changes (code)
playwright.config.ts: newdesktopproject (...devices['Desktop Chrome'],serviceWorkers: 'block', no baseURL override).e2e/layout.spec.ts: desktop-skip the 3 mobile-only geometry tests (2× BottomTabBar safe-area, 56×56 FAB) + new desktop ≥44px toolbar-button parity assertion (D-04). No mobile assertion weakened/deleted.e2e/calendar.spec.ts,e2e/lists.spec.ts,e2e/README.md: header/doc updates listing all three profiles.ci.yml: cosmetic step-name comment only — the harness job already runs every project via the unchangedtest:e2einvocation and installs the chromium engine Desktop Chrome uses.Gate
Blocking (no
continue-on-error). Local:pnpm test:e2e→ 85 passed / 5 skipped / 0 failed across iphone + pixel + desktop. lint + typecheck + format:check + PWA unit (191) all green.This PR opened to run the real CI desktop gate (SC-3).