Validate-Tests 150 Protocol
Goal
Cover current uncommitted changes with meaningful tests at >70% coverage (including the changed lines) and confirm the entire test suite is green.
Workflow
-
Identify current changes
- Check staged and unstaged changes (
git status).
- List changed files (
git diff --name-only and git diff --name-only --staged).
- Focus testing on these files and their direct dependencies.
-
Find the coverage command
- Check
package.json scripts for test, coverage, or ci.
- If unclear, search for Jest/Vitest config files and default coverage options.
-
Run coverage
- Execute the project’s coverage command.
- Save the exact overall percentage and per‑file coverage for changed files (lines/branches).
- Passing tests ≠ coverage: verify that the changed lines are executed (use coverage reports to confirm).
-
Prioritize targets
- Start with changed files that are <70% covered.
- Prefer pure functions, utilities, and deterministic logic.
-
Add tests
- Write tests that directly exercise the changed logic/markup and assert behavior, edge cases, and failure paths.
- Prefer behavior- or structure-level assertions that map to the changed lines (e.g., DOM structure/classes for UI changes).
- Avoid snapshot‑only tests unless behavior is visual and stable.
-
Re‑run coverage
- Confirm each changed file is > 70% covered (lines/branches where available).
- Confirm the specific changed lines are covered (use coverage reports or direct evidence in tests).
- If coverage tooling only provides overall numbers, explain the limitation and justify how tests exercise the changed code.
- If not met, repeat steps 4–6.
-
Run full test suite
- Execute the standard full test command for the repo (not just a subset).
- Ensure all tests are green.
-
Run lint
- Execute the standard lint command for the repo.
- Ensure lint is green and fix lint errors introduced or surfaced in the process.
- Do not leave lint in a failing state.
-
Run compile
- Execute the standard compile command for the repo
npm run compile or tsc --noEmit, best way is from root directory npm run test && npm run lint:full
- Ensure compile is green and fix compile errors introduced or surfaced in the process.
- Do not leave compile in a failing state.
-
Report
- Summarize added tests, coverage changes, and full test results.
- Note any files intentionally excluded or skipped and why.
Validation checklist
Output expectations
- Provide the command used to measure coverage, to run the full test suite, and to run lint.
- Provide before/after coverage numbers and per‑file coverage for changed files.
- Explicitly state how the changed lines are exercised by the tests.
- List which files were targeted and why.
- Confirm the final threshold is met for changed files, or report remaining gaps.
- Confirm all tests and lint are green.
- Confirm compile is green.