3.5 KiB
Phase 14: Desktop E2E Coverage - Discussion Log
Audit trail only. Do not use as input to planning, research, or execution agents. Decisions are captured in CONTEXT.md — this log preserves the alternatives considered.
Date: 2026-06-12 Phase: 14-Desktop E2E Coverage Areas discussed: Spec-compat strategy, Desktop gate severity, Desktop assertion depth, Desktop profile/viewport
Spec-Compat Strategy
| Option | Description | Selected |
|---|---|---|
| Conditional skips, shared specs | One set of spec files; gate mobile-only tests with test.skip(project==='desktop'), assert desktop equivalents on divergence; cross-cutting tests shared. |
✓ |
| Separate desktop spec files | New desktop.spec.ts; mobile specs project-filtered. Clear separation, duplicates cross-cutting assertions. |
|
| Locator-only, no skips | Viewport-agnostic locators, no skips. Impossible where elements don't exist on desktop (FAB, bottom bar). |
User's choice: Conditional skips, shared specs Notes: One source of truth, least duplication. Mobile profiles stay exactly as authored in Phase 7.
Desktop Gate Severity
| Option | Description | Selected |
|---|---|---|
| Blocking (same as mobile) | Desktop failures block the merge exactly like iphone/pixel. | ✓ |
| Advisory (non-blocking) | Desktop runs/reports but doesn't block merge (continue-on-error). |
User's choice: Blocking (same as mobile) Notes: Resolves ROADMAP Success Criterion 3 (deferred to planning). Implies specs must be deterministic before merge — fix flakes, don't downgrade the gate.
Desktop Assertion Depth
| Option | Description | Selected |
|---|---|---|
| Parity-adapted | Assert desktop equivalents (sidebar nav, no overflow, populated/empty/error states, nav tap targets); skip FAB/bottom-bar. | ✓ |
| Render-only smoke | Just no-overflow + states render; no desktop-chrome assertions. | |
| Full divergence assertions | Also assert mobile chrome absent + desktop-only elements present. |
User's choice: Parity-adapted
Notes: Full-divergence rejected on code grounds — New Event is not mobile-only (desktop toolbar button shares the name, CalendarShell.tsx:424); only the 56×56 FAB geometry is mobile-specific.
Desktop Profile / Viewport
| Option | Description | Selected |
|---|---|---|
| Desktop Chrome default, no WebKit | devices['Desktop Chrome'] (1280×720), single desktop project. |
✓ |
| Desktop Chrome at wider width | Override to ~1440×900 for more sidebar/grid real estate. | |
| Add Desktop WebKit too | Desktop Chrome + Desktop Safari/WebKit. |
User's choice: Desktop Chrome default, no WebKit Notes: Apple member already covered on mobile Safari (iphone/WebKit). Desktop Chrome sufficient for shared/wall browser.
Claude's Discretion
- Exact skip-gate mechanism (
test.skip(testInfo.project.name === 'desktop')vs.isDesktopdescribe split vs. projectgrep/grepInvert) — pick the cleanest that avoids duplicating cross-cutting tests. - Whether the desktop "New Event" toolbar button gets its own ≥44px tap-target assertion as the desktop parity equivalent of the FAB check (recommended, optional).
Deferred Ideas
- Desktop WebKit profile — declined for this phase; revisit only on a desktop-Safari-specific bug.
- Live desktop event-create round-trip — still blocked by dev user 1 having no CalDAV calendar (carried from Phase 7).