mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-04-06 17:23:28 +08:00
58 lines
1.4 KiB
Markdown
58 lines
1.4 KiB
Markdown
# Testing Requirements
|
|
|
|
## Minimum Test Coverage: 80%
|
|
|
|
Test Types (ALL required):
|
|
1. **Unit Tests** - Individual functions, utilities, components
|
|
2. **Integration Tests** - API endpoints, database operations
|
|
3. **E2E Tests** - Critical user flows (framework chosen per language)
|
|
|
|
## Test-Driven Development
|
|
|
|
MANDATORY workflow:
|
|
1. Write test first (RED)
|
|
2. Run test - it should FAIL
|
|
3. Write minimal implementation (GREEN)
|
|
4. Run test - it should PASS
|
|
5. Refactor (IMPROVE)
|
|
6. Verify coverage (80%+)
|
|
|
|
## Troubleshooting Test Failures
|
|
|
|
1. Use **tdd-guide** agent
|
|
2. Check test isolation
|
|
3. Verify mocks are correct
|
|
4. Fix implementation, not tests (unless tests are wrong)
|
|
|
|
## Agent Support
|
|
|
|
- **tdd-guide** - Use PROACTIVELY for new features, enforces write-tests-first
|
|
|
|
## Test Structure (AAA Pattern)
|
|
|
|
Prefer Arrange-Act-Assert structure for tests:
|
|
|
|
```typescript
|
|
test('calculates similarity correctly', () => {
|
|
// Arrange
|
|
const vector1 = [1, 0, 0]
|
|
const vector2 = [0, 1, 0]
|
|
|
|
// Act
|
|
const similarity = calculateCosineSimilarity(vector1, vector2)
|
|
|
|
// Assert
|
|
expect(similarity).toBe(0)
|
|
})
|
|
```
|
|
|
|
### Test Naming
|
|
|
|
Use descriptive names that explain the behavior under test:
|
|
|
|
```typescript
|
|
test('returns empty array when no markets match query', () => {})
|
|
test('throws error when API key is missing', () => {})
|
|
test('falls back to substring search when Redis is unavailable', () => {})
|
|
```
|