Files
gh-zeff01-zeff-claude-setup/commands/api/api-test.md
2025-11-30 09:08:22 +08:00

117 lines
2.6 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
description: Test API endpoints with automated test generation
model: claude-sonnet-4-5
---
Generate comprehensive API tests for the specified endpoint.
## Target
$ARGUMENTS
## Test Strategy for Solo Developers
Create practical, maintainable tests using modern tools:
### 1. **Testing Approach**
- Unit tests for validation logic
- Integration tests for full API flow
- Edge case coverage
- Error scenario testing
### 2. **Tools** (choose based on project)
- **Vitest** - Fast, modern (recommended for new projects)
- **Jest** - Established, widely used
- **Supertest** - HTTP assertions
- **MSW** - API mocking
### 3. **Test Coverage**
**Happy Paths**
- Valid inputs return expected results
- Proper status codes
- Correct response structure
**Error Paths**
- Invalid input validation
- Authentication failures
- Rate limiting
- Server errors
- Missing required fields
**Edge Cases**
- Empty requests
- Malformed JSON
- Large payloads
- Special characters
- SQL injection attempts
- XSS attempts
### 4. **Test Structure**
```typescript
describe('API Endpoint', () => {
describe('Success Cases', () => {
it('should handle valid request', () => {})
it('should return correct status code', () => {})
})
describe('Validation', () => {
it('should reject invalid input', () => {})
it('should validate required fields', () => {})
})
describe('Error Handling', () => {
it('should handle server errors', () => {})
it('should return proper error format', () => {})
})
})
```
### 5. **What to Generate**
1. **Test File** - Complete test suite with all scenarios
2. **Mock Data** - Realistic test fixtures
3. **Helper Functions** - Reusable test utilities
4. **Setup/Teardown** - Database/state management
5. **Quick Test Script** - npm script to run tests
## Key Testing Principles
-  Test behavior, not implementation
-  Clear, descriptive test names
-  Arrange-Act-Assert pattern
-  Independent tests (no shared state)
-  Fast execution (<5s for unit tests)
-  Realistic mock data
-  Test error messages
- L Don't test framework internals
- L Don't mock what you don't own
- L Avoid brittle tests
## Additional Scenarios to Cover
1. **Authentication/Authorization**
- Valid tokens
- Expired tokens
- Missing tokens
- Invalid permissions
2. **Data Validation**
- Type mismatches
- Out of range values
- SQL/NoSQL injection
- XSS payloads
3. **Rate Limiting**
- Within limits
- Exceeding limits
- Reset behavior
4. **Performance**
- Response times
- Large dataset handling
- Concurrent requests
Generate production-ready tests I can run immediately with `npm test`.