jest-test-framework
Execute and generate Jest tests for JavaScript/TypeScript projects with support for unit, integration, and E2E testing
When & Why to Use This Skill
This Claude skill automates the end-to-end testing lifecycle for JavaScript and TypeScript projects using the Jest framework. It enables the automated generation of unit, integration, and E2E tests from bug reports or source code, executes test suites with structured JSON output, and facilitates rapid bug verification and regression testing.
Use Cases
- Bug Reproduction: Automatically generate a failing Jest test case from a bug report to isolate issues and provide a clear reproduction path for developers.
- Automated Test Execution: Run comprehensive test suites (Unit, Integration, E2E) and receive structured results for integration into CI/CD pipelines or automated reporting tools.
- Code Coverage Enhancement: Generate test files for React components or Node.js/Express APIs based on existing source code to ensure high quality and reliability.
- Fix Verification: Re-run specific test cases after a code change to verify that a bug has been resolved and that no regressions have been introduced.
| name | Jest Test Framework |
|---|---|
| description | Execute and generate Jest tests for JavaScript/TypeScript projects with support for unit, integration, and E2E testing |
| version | 1.0.0 |
Jest Test Framework
Purpose
Provide comprehensive Jest test execution and generation capabilities for JavaScript and TypeScript projects, supporting:
- Test file generation from bug reports
- Test execution with detailed output parsing
- Unit, integration, and E2E test patterns
- TypeScript and modern JavaScript syntax
Usage
Generate Test File
Create a test file from a bug report or feature description:
node generate-test.js \
--source src/components/Button.js \
--output tests/components/Button.test.js \
--type unit \
--description "Button component fails to handle click events"
Execute Tests
Run Jest tests and return structured results:
node run-test.js \
--file tests/components/Button.test.js \
--config jest.config.js
Command Line Options
generate-test.js
--source <path>- Source file to test (required)--output <path>- Output test file path (required)--type <unit|integration|e2e>- Test type (default: unit)--description <text>- Bug description or test purpose--framework <react|node|express>- Framework-specific patterns
run-test.js
--file <path>- Test file to execute (required)--config <path>- Jest config file (optional)--coverage- Run with coverage report--watch- Run in watch mode (not recommended for CI)
Output Format
Test Generation
Returns JSON with generated test file information:
{
"success": true,
"testFile": "tests/components/Button.test.js",
"testCount": 3,
"template": "unit-test",
"framework": "react"
}
Test Execution
Returns JSON with test results:
{
"success": false,
"passed": 2,
"failed": 1,
"total": 3,
"duration": 1.234,
"failures": [
{
"test": "Button handles click events",
"error": "Expected onClick to be called",
"file": "tests/components/Button.test.js",
"line": 15
}
]
}
Templates
Unit Test Template
For testing individual functions or components in isolation:
- Minimal dependencies
- Fast execution
- Focused on single responsibility
Integration Test Template
For testing multiple components working together:
- Real dependencies (minimal mocking)
- Database/API integration
- Multi-component workflows
E2E Test Template
For testing complete user journeys:
- Full application stack
- Browser automation (if applicable)
- End-to-end scenarios
Framework-Specific Patterns
React Components
import { render, fireEvent, screen } from '@testing-library/react';
import { Button } from '../components/Button';
describe('Button', () => {
it('handles click events', () => {
const onClick = jest.fn();
render(<Button onClick={onClick}>Click me</Button>);
fireEvent.click(screen.getByText('Click me'));
expect(onClick).toHaveBeenCalled();
});
});
Node.js/Express
const request = require('supertest');
const app = require('../app');
describe('GET /api/users', () => {
it('returns list of users', async () => {
const res = await request(app).get('/api/users');
expect(res.status).toBe(200);
expect(res.body).toBeInstanceOf(Array);
});
});
Integration with deep-debugger
The deep-debugger agent uses this skill for:
- Test Recreation: Generate failing test from bug report
- Test Validation: Execute test to verify it fails consistently
- Fix Verification: Re-run test after fix to ensure it passes
Example workflow:
1. deep-debugger receives bug report
2. Invokes test-detector to identify Jest
3. Invokes jest-test/generate-test.js to create failing test
4. Invokes jest-test/run-test.js to validate test fails
5. Delegates fix to appropriate specialist agent
6. Invokes jest-test/run-test.js to verify fix
Dependencies
Requires Jest to be installed in the project:
npm install --save-dev jest @types/jest
For React testing:
npm install --save-dev @testing-library/react @testing-library/jest-dom
Error Handling
Test Generation Errors
{
"success": false,
"error": "Source file not found",
"file": "src/components/Missing.js"
}
Test Execution Errors
{
"success": false,
"error": "Jest configuration not found",
"config": "jest.config.js"
}
See Also
- REFERENCE.md - Detailed Jest API reference and best practices
- templates/ - Test file templates for different scenarios