Files
pleno-vue/docs/user-wash-start-production-readiness.md
T

8.0 KiB

User wash start production-readiness QA matrix

This note documents deterministic coverage for the self-serve user wash start flow. The @dynamic-image Playwright case remains separated because it validates rendered image behavior in addition to deterministic state and API transitions.

Unit matrix

Area Required scenario Coverage
useWashFlowState Step transitions for vehicle, questions, lane, tasks, in-progress, completed tests/unit/use-wash-flow-state-production.spec.js validates step clickability, next-button gating, questions-to-lane updates, lane-to-start target selection, task completion transition, in-progress navigation, and completed-step non-clickability contract.
useWashSessionActions START success and failure tests/unit/use-wash-session-actions-production.spec.js covers successful manual START state mutation and failed START retryability without active-wash mutation.
useWashSessionActions Relay enable success and relay enable failure with STOP rollback tests/unit/use-wash-session-actions-production.spec.js covers machine relay success and relay failure rollback via STOP.
useWashSessionActions STOP failure and already-stopped STOP recovery tests/unit/use-wash-session-actions-production.spec.js covers failed STOP preserving active state and already-not-occupied STOP clearing local state.
useSelfServeLogic Preview/summary merge tests/unit/use-self-serve-logic-production.spec.js covers preview questions merging with summary questions, answer maps, visible question order, tasks, and allowed services.
useSelfServeLogic Request race handling tests/unit/use-self-serve-logic-production.spec.js covers stale preview/summary responses being ignored when a newer request wins.
useSelfServeLogic Allowed services updates tests/unit/use-self-serve-logic-production.spec.js covers lane allowed-service endpoint updates and first-failure fallback behavior.
useSelfServeLogic Answer sync failures tests/unit/use-self-serve-logic-production.spec.js covers error reporting while preserving the caller's optimistic local answer.
MyWashStart.vue Local progress restore, server active-wash restore, recent-completion suppression, unmount cleanup, duplicate-fetch prevention tests/unit/my-wash-start-production.spec.js locks the component contracts for restore ordering, authenticated active-wash application, recent-completion suppression across restore/polling, unmount cleanup, and duplicate-fetch/sync guards.

E2E mocked matrix

Required scenario Coverage
Full manual flow tests/e2e/self-serve-wash.spec.js covers direct manual wash start, guided completion, STOP, exit-gate open, completed state, and close/reset.
Full machine flow tests/e2e/self-serve-wash.spec.js covers machine task rendering, dynamic image progress, required task completion, machine start path, and reload persistence.
Reload/resume active wash tests/e2e/self-serve-wash.spec.js covers local progress reload and authenticated server active-wash resume from another device.
Backend says wash completed during polling tests/e2e/self-serve-wash.spec.js covers server polling of active wash and local transition to completed when the backend no longer reports the matching in-progress wash.
Network failures for preview, answer sync, START, relay enable, STOP tests/e2e/self-serve-wash.spec.js covers retryable START failure, STOP failure preservation, allowed-services gateway timeout/retry, answer sync background resilience, and unit-level relay rollback. Add mocked network route overrides when expanding browser-level failure assertions.

Optional live smoke

Optional scenario Coverage
Dynamic image smoke The @dynamic-image Playwright test in tests/e2e/self-serve-wash.spec.js is tagged separately from deterministic CI coverage so it can be included or excluded explicitly with Playwright grep controls.