mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-02-17 03:43:08 +08:00
Commands enhanced with multi-language support, error recovery strategies, and structured step-by-step workflows: - build-fix: build system detection table, fix loop, recovery strategies - test-coverage: framework detection, test generation rules, before/after report - refactor-clean: safety tiers (SAFE/CAUTION/DANGER), multi-language tools - update-codemaps: codemap format spec, diff detection, metadata headers - update-docs: source-of-truth mapping, staleness checks, generated markers New example: - rust-api-CLAUDE.md: Axum + SQLx + PostgreSQL with layered architecture, thiserror patterns, compile-time SQL verification, integration test examples
70 lines
2.6 KiB
Markdown
70 lines
2.6 KiB
Markdown
# Test Coverage
|
|
|
|
Analyze test coverage, identify gaps, and generate missing tests to reach 80%+ coverage.
|
|
|
|
## Step 1: Detect Test Framework
|
|
|
|
| Indicator | Coverage Command |
|
|
|-----------|-----------------|
|
|
| `jest.config.*` or `package.json` jest | `npx jest --coverage --coverageReporters=json-summary` |
|
|
| `vitest.config.*` | `npx vitest run --coverage` |
|
|
| `pytest.ini` / `pyproject.toml` pytest | `pytest --cov=src --cov-report=json` |
|
|
| `Cargo.toml` | `cargo llvm-cov --json` |
|
|
| `pom.xml` with JaCoCo | `mvn test jacoco:report` |
|
|
| `go.mod` | `go test -coverprofile=coverage.out ./...` |
|
|
|
|
## Step 2: Analyze Coverage Report
|
|
|
|
1. Run the coverage command
|
|
2. Parse the output (JSON summary or terminal output)
|
|
3. List files **below 80% coverage**, sorted worst-first
|
|
4. For each under-covered file, identify:
|
|
- Untested functions or methods
|
|
- Missing branch coverage (if/else, switch, error paths)
|
|
- Dead code that inflates the denominator
|
|
|
|
## Step 3: Generate Missing Tests
|
|
|
|
For each under-covered file, generate tests following this priority:
|
|
|
|
1. **Happy path** — Core functionality with valid inputs
|
|
2. **Error handling** — Invalid inputs, missing data, network failures
|
|
3. **Edge cases** — Empty arrays, null/undefined, boundary values (0, -1, MAX_INT)
|
|
4. **Branch coverage** — Each if/else, switch case, ternary
|
|
|
|
### Test Generation Rules
|
|
|
|
- Place tests adjacent to source: `foo.ts` → `foo.test.ts` (or project convention)
|
|
- Use existing test patterns from the project (import style, assertion library, mocking approach)
|
|
- Mock external dependencies (database, APIs, file system)
|
|
- Each test should be independent — no shared mutable state between tests
|
|
- Name tests descriptively: `test_create_user_with_duplicate_email_returns_409`
|
|
|
|
## Step 4: Verify
|
|
|
|
1. Run the full test suite — all tests must pass
|
|
2. Re-run coverage — verify improvement
|
|
3. If still below 80%, repeat Step 3 for remaining gaps
|
|
|
|
## Step 5: Report
|
|
|
|
Show before/after comparison:
|
|
|
|
```
|
|
Coverage Report
|
|
──────────────────────────────
|
|
File Before After
|
|
src/services/auth.ts 45% 88%
|
|
src/utils/validation.ts 32% 82%
|
|
──────────────────────────────
|
|
Overall: 67% 84% ✅
|
|
```
|
|
|
|
## Focus Areas
|
|
|
|
- Functions with complex branching (high cyclomatic complexity)
|
|
- Error handlers and catch blocks
|
|
- Utility functions used across the codebase
|
|
- API endpoint handlers (request → response flow)
|
|
- Edge cases: null, undefined, empty string, empty array, zero, negative numbers
|