Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 09:08:22 +08:00
commit a25d9dfcd0
28 changed files with 3680 additions and 0 deletions

116
commands/api/api-test.md Normal file
View File

@@ -0,0 +1,116 @@
---
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`.