sokko-g/docs/TEST_STRATEGY.md
Shinuwa 386212041f
All checks were successful
Deploy Sokko G / deploy (push) Successful in 18s
Improve toolbox checklists, image browsing, and guide integration
2026-09-27 22:26:39 +02:00

52 lines
3.3 KiB
Markdown

# Test Strategy
## Scope
The risk-based completion boundary for audit C06 (2026-09-09), agreed on
2026-09-17, is regression coverage of important workflows, not elimination of
every source-text assertion. Beads task `sokko-g-zsd` tracks acceptance and status.
This document is a coverage reference, not a separate task backlog.
An inventory found 350 `match` / `doesNotMatch` calls across the static app,
toolbox and style tests before the final batch. This counts assertion calls,
not bugs, missing scenarios or a percentage of work remaining.
## Coverage Boundary
| Risk | Behavioral coverage |
| --- | --- |
| Data loss, startup failure, deferred media | `e2e/persistence.spec.js`, `storage-startup.spec.js`, `deferred-media.spec.js`; Node persistence queue and image action tests |
| React lifecycle, shared editing and navigation | `e2e/editor-lifecycle.spec.js`, `inline-edit.spec.js`, `form-reorder.spec.js`, `shell-behavior.spec.js`, `session-state.spec.js` |
| Shared reorder policy and module order | `e2e/grouped-reorder.spec.js`, `module-order.spec.js` |
| Toolbox creation, import/export, text exchange | `e2e/toolbox.spec.js`, `text-exchange.spec.js`; Node toolbox module tests |
| Links: creation, copy, category removal preserving links, deletion and reload | `e2e/basic-tools.spec.js` |
| Counters: creation, signed values, reset, deletion and reload | `e2e/basic-tools.spec.js` |
| Checklist: quantities, clamping, completed item/category visibility and persistence | `e2e/basic-tools.spec.js` |
| Images: gallery, detail navigation, keyboard controls and focus restoration | `e2e/basic-tools.spec.js` |
| Guide checklists: persistent association, page controls, drawer scope and live completion | `e2e/guide-checklist.spec.js` |
| Planner: editing, recurrence, prerequisites, subtree reorder and persistence | `e2e/task-planner.spec.js` |
| Representative visual states and responsive layouts | `e2e/style-layouts.spec.js`, `tool-style-states.spec.js`, `card-surfaces.spec.js`, `nds-controls.spec.js`, `nds-patterns.spec.js` |
| Production onboarding | `e2e/production/onboarding.spec.js` |
These suites cover selected risks, not every permutation of every tool.
Public formats, product vocabulary, editorial validation, security restrictions
and deliberate architecture constraints retain static or pure-function tests.
Implementation-name assertions can be replaced when their owning code changes;
their mere presence is not a functional defect.
## Optional Extensions
Exhaustive advanced tool variants (calendar recurrence operations, goal graph
combinations, equipment and combo permutations), every text-exchange UI adapter,
fine calculator geometry and wholesale conversion of remaining implementation
assertions are outside this closure boundary. They are candidates when related
features change or a concrete regression demonstrates missing coverage, not
automatic follow-on batches required to finish this audit.
## Validation
Run targeted tests while implementing a grouped change, then `npm run check:full`
as the final gate: lint, Node tests, build, development E2E and production E2E.
Review the diff and report actual failures or limits before closing the task.
Do not introduce visual snapshots solely to prove that a page loads.
Keep detailed command logs outside tracked source and report concise results.