Execute and generate Jest tests for JavaScript/TypeScript projects with support for unit, integration, and E2E testing
/plugin marketplace add FortiumPartners/ensemble/plugin install ensemble-full@ensembleThis skill inherits all available tools. When active, it can use any tool Claude has access to.
REFERENCE.mdgenerate-test.jsrun-test.jstemplates/integration-test.template.jstemplates/unit-test.template.jsProvide comprehensive Jest test execution and generation capabilities for JavaScript and TypeScript projects, supporting:
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"
Run Jest tests and return structured results:
node run-test.js \
--file tests/components/Button.test.js \
--config jest.config.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--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)Returns JSON with generated test file information:
{
"success": true,
"testFile": "tests/components/Button.test.js",
"testCount": 3,
"template": "unit-test",
"framework": "react"
}
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
}
]
}
For testing individual functions or components in isolation:
For testing multiple components working together:
For testing complete user journeys:
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();
});
});
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);
});
});
The deep-debugger agent uses this skill for:
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
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
{
"success": false,
"error": "Source file not found",
"file": "src/components/Missing.js"
}
{
"success": false,
"error": "Jest configuration not found",
"config": "jest.config.js"
}