unit-test-generation

majiayu000's avatarfrom majiayu000

Generate comprehensive unit tests for source files with 100% coverage target. Use when writing tests for React components, utility functions, hooks, or API routes. Supports Jest and Vitest frameworks following Pandora coding standards.

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 5, 2026

When & Why to Use This Skill

This Claude skill automates the generation of comprehensive unit tests for source files, specifically targeting 100% code coverage. It streamlines the development workflow by creating high-quality test suites for React components, utility functions, hooks, and API routes using Jest and Vitest frameworks, ensuring robust software reliability and adherence to modern coding standards.

Use Cases

  • Automating the creation of unit tests for new React components to verify UI rendering and user interactions.
  • Generating exhaustive test cases for complex utility functions, covering happy paths, boundary conditions, and error handling.
  • Ensuring 100% branch coverage for custom React hooks and API routes to maintain logic integrity.
  • Rapidly establishing a testing baseline for legacy code or newly written modules to prevent regressions during refactoring.
nameunit-test-generation
descriptionGenerate comprehensive unit tests for source files with 100% coverage target. Use when writing tests for React components, utility functions, hooks, or API routes. Supports Jest and Vitest frameworks following Pandora coding standards.
allowed-toolsRead, Grep, Glob, Bash

Unit Test Generation Skill

Generate comprehensive unit tests for any source code with a target of 100% coverage.

When to Use

This skill activates when:

  • User asks for unit tests for a file or component
  • Code needs test coverage
  • User mentions "test", "coverage", "jest", "vitest"
  • After writing new code that needs testing

Supported File Types

  • React components (.tsx, .jsx)
  • Utility functions (.ts, .js)
  • Custom hooks (use*.ts, use*.tsx)
  • API routes (route.ts, api/*.ts)
  • Classes and modules

Test Generation Process

  1. Analyze the source file:

    • Identify exported functions, components, hooks
    • Map conditional branches and logic paths
    • Note dependencies and imports
  2. Generate test cases for:

    • Happy path scenarios
    • Edge cases (empty, null, boundary)
    • Error handling paths
    • All branches and conditions
  3. Write test code following patterns:

    • Use React Testing Library for components
    • Mock external dependencies
    • Use descriptive test names
    • Group with describe blocks

Test File Template

import { render, screen, fireEvent } from '@testing-library/react';
import { ComponentName } from './ComponentName';

describe('ComponentName', () => {
  describe('rendering', () => {
    it('should render correctly with default props', () => {
      render(<ComponentName />);
      expect(screen.getByRole('...')).toBeInTheDocument();
    });
  });

  describe('interactions', () => {
    it('should handle click events', () => {
      const onClick = jest.fn();
      render(<ComponentName onClick={onClick} />);
      fireEvent.click(screen.getByRole('button'));
      expect(onClick).toHaveBeenCalled();
    });
  });

  describe('edge cases', () => {
    it('should handle empty props gracefully', () => {
      render(<ComponentName items={[]} />);
      expect(screen.getByText('No items')).toBeInTheDocument();
    });
  });
});

Best Practices

  • Test behavior, not implementation
  • Use meaningful test descriptions
  • Keep tests independent and isolated
  • Mock external services and APIs
  • Test accessibility where applicable
  • Aim for 100% branch coverage
  • Follow AAA pattern (Arrange, Act, Assert)