Generate comprehensive tests for specified code.
Instructions
- Read the target file(s)
- Identify testable units (functions, classes, methods)
- Generate tests following project conventions
- Ensure high coverage of edge cases
Test generation process
1. Analyze target
- Identify public interfaces
- Understand dependencies
- Note edge cases and boundaries
2. Detect test framework
Check for:
jest.config.js→ Jestvitest.config.ts→ Vitestpytest.ini→ pytestmochain package.json → Mocha
3. Generate tests
Follow the detected framework conventions.
Test categories
Happy path
Normal expected behavior with valid input.
Edge cases
- Empty inputs
- Null/undefined values
- Boundary values (0, -1, MAX_INT)
- Single item vs multiple items
Error cases
- Invalid input types
- Missing required parameters
- Network/IO failures
- Timeout scenarios
Integration points
- Database interactions
- External API calls
- File system operations
Output format
describe('[ComponentName]', () => {
describe('[methodName]', () => {
// Happy path
it('should [expected behavior] when [condition]', () => {
// Arrange
// Act
// Assert
});
// Edge cases
it('should handle empty input', () => {});
it('should handle null values', () => {});
// Error cases
it('should throw when [invalid condition]', () => {});
});
});
Conventions
- One assertion per test (when practical)
- Descriptive test names
- AAA pattern (Arrange-Act-Assert)
- No test interdependence
- Mock external dependencies
Usage
/generate-tests src/utils/calculator.ts
/generate-tests src/services/
$ARGUMENTS