Files
everything-claude-code/.opencode/commands/tdd.md

67 lines
1.7 KiB
Markdown

---
description: Enforce TDD workflow with 80%+ coverage
agent: tdd-guide
subtask: true
---
# TDD Command
Implement the following using strict test-driven development: $ARGUMENTS
## TDD Cycle (MANDATORY)
```
RED → GREEN → REFACTOR → REPEAT
```
1. **RED**: Write a failing test FIRST
2. **GREEN**: Write minimal code to pass the test
3. **REFACTOR**: Improve code while keeping tests green
4. **REPEAT**: Continue until feature complete
## Your Task
### Step 1: Define Interfaces (SCAFFOLD)
- Define TypeScript interfaces for inputs/outputs
- Create function signature with `throw new Error('Not implemented')`
### Step 2: Write Failing Tests (RED)
- Write tests that exercise the interface
- Include happy path, edge cases, and error conditions
- Run tests - verify they FAIL
### Step 3: Implement Minimal Code (GREEN)
- Write just enough code to make tests pass
- No premature optimization
- Run tests - verify they PASS
### Step 4: Refactor (IMPROVE)
- Extract constants, improve naming
- Remove duplication
- Run tests - verify they still PASS
### Step 5: Check Coverage
- Target: 80% minimum
- 100% for critical business logic
- Add more tests if needed
## Coverage Requirements
| Code Type | Minimum |
|-----------|---------|
| Standard code | 80% |
| Financial calculations | 100% |
| Authentication logic | 100% |
| Security-critical code | 100% |
## Test Types to Include
- **Unit Tests**: Individual functions
- **Edge Cases**: Empty, null, max values, boundaries
- **Error Conditions**: Invalid inputs, network failures
- **Integration Tests**: API endpoints, database operations
---
**MANDATORY**: Tests must be written BEFORE implementation. Never skip the RED phase.