Status. Proposed design only. Nothing in this vault is DG client approval. No application, service or test has been executed; every scenario is Not executed. Fees and dates are open.

Test strategy

Purpose

How scenarios become automated evidence, once code exists. Nothing here has been run.

Source notes

Implementation-Order-Overview, Dependency-and-Regression-Table, Scenario-Evidence-Rules, Acceptance-Gates-A01-A11.

Method

Tests first. For each step, write the failing tests of its tests-first subset, implement the minimum, refactor without changing the observable contract. Scenario IDs stay stable and appear in test names.

Layers (Proposed)

LayerToolUsed for
API and integrationpytest against a real PostgreSQLPipeline, isolation, versions, idempotency, outbox, worker
ComponentVitest with Testing LibraryUI behaviour and accessible names
End to endPlaywrightJourneys, responsive layout, accessibility checks
ManualStaff rehearsal recordsDG manual services (DG-Manual-Services)

Required test shapes

  • Cross-company denial wherever access is involved, using the three-company canary fixture (Company-Isolation).
  • Race and idempotency: duplicate submit, double accept, approval versus revocation (T16, T18).
  • Outbox: state and event commit together; duplicate and ambiguous sends reconcile (T33, T35).
  • Clock control: overdue and expiry use the Clock port (Integration-Ports, T31).
  • Accessibility: checked in end-to-end runs for responsive layouts (T39).

Evidence and status

A scenario is not Passed by unit tests; see Scenario-Evidence-Rules. Inventory: Scenario-Inventory. Coverage: Coverage-Matrix. Regression: Cross-Module-Impact-Matrix.

Open decisions

Load, recovery and accessibility targets are Blocked by Q09; a target nobody agreed is not measured as a pass. A coverage floor is not proposed yet; record it as an ADR when apps/ exists.

What CI runs

See Build-Test-and-Deployment and ADR-0005-CI-on-Every-Pull-Request.

Change history

DateChange
2026-10-20Created (bootstrap Phase 2)