Files
familysync/.planning/phases/14-desktop-e2e-coverage/14-DISCUSSION-LOG.md
T

3.5 KiB
Raw Blame History

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. isDesktop describe split vs. project grep/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).