TEST-001 critical test-coverage

Automated tests with coverage tracking and CI threshold

Test framework configured with coverage reporting, thresholds set, and CI enforces coverage requirements

Question to ask

"What's your actual coverage number right now?"

Verification guide

Severity: Critical

Check automatically:

  1. Detect test framework and config:

    # Look for test configs
    ls -la jest.config.* vitest.config.* pytest.ini pyproject.toml 2>/dev/null
    
    # Check package.json for test scripts
    grep -E '"test":|"coverage":' package.json
    
  2. Run tests and capture coverage:

    # Node.js
    pnpm test --coverage
    
    # Python
    pytest --cov=src --cov-report=term-missing
    
  3. Verify coverage thresholds configured:

    # Jest/Vitest - look for coverageThreshold
    grep -rE "coverageThreshold|--coverage.*fail" jest.config.* vitest.config.* package.json 2>/dev/null
    
    # Python - look for fail_under
    grep -E "fail_under|--cov-fail-under" pytest.ini pyproject.toml .coveragerc 2>/dev/null
    
  4. Verify CI enforces coverage:

    # Check CI config for coverage step
    grep -rE "coverage|--cov" .github/workflows/*.yml .gitlab-ci.yml 2>/dev/null
    

Cross-reference with:

  • GIT-001 (Clone and run) - tests should run as part of setup verification
  • Section 9 (Development Workflow) - CI should run tests on PRs

Pass criteria:

  • Test framework configured
  • Tests run successfully
  • Coverage reporting enabled
  • Coverage threshold configured (CI fails if coverage drops)
  • CI workflow includes coverage check

Fail criteria:

  • No test framework configured
  • Tests fail to run
  • No coverage reporting
  • No coverage threshold (coverage can drop silently)
  • CI doesn't enforce coverage

Evidence to capture:

  • Test framework detected
  • Total test count, pass/fail
  • Current coverage percentage (lines, branches)
  • Coverage threshold value (if set)
  • CI workflow that enforces it

Section

08. Testing & Code Metrics

Monitoring & Health