docs(14): capture phase context
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
# 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).
|
||||
Reference in New Issue
Block a user