vitest

Vitest configuration, mocking, coverage, snapshot testing, and performance.

509 stars

Best use case

vitest is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Vitest configuration, mocking, coverage, snapshot testing, and performance.

Teams using vitest should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/vitest/SKILL.md --create-dirs "https://raw.githubusercontent.com/a5c-ai/babysitter/main/library/specializations/web-development/skills/vitest/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/vitest/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How vitest Compares

Feature / AgentvitestStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Vitest configuration, mocking, coverage, snapshot testing, and performance.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Vitest Skill

Expert assistance for unit and integration testing with Vitest.

## Capabilities

- Configure Vitest for projects
- Write unit and integration tests
- Implement mocking strategies
- Configure coverage reporting
- Optimize test performance

## Test Patterns

```typescript
import { describe, it, expect, vi, beforeEach } from 'vitest';
import { render, screen } from '@testing-library/react';
import { UserService } from './user.service';

describe('UserService', () => {
  const mockDb = { user: { findMany: vi.fn() } };

  beforeEach(() => {
    vi.clearAllMocks();
  });

  it('should fetch users', async () => {
    mockDb.user.findMany.mockResolvedValue([{ id: '1', name: 'John' }]);

    const service = new UserService(mockDb);
    const users = await service.findAll();

    expect(users).toHaveLength(1);
    expect(mockDb.user.findMany).toHaveBeenCalledOnce();
  });
});
```

## Configuration

```typescript
// vitest.config.ts
export default defineConfig({
  test: {
    globals: true,
    environment: 'jsdom',
    coverage: {
      provider: 'v8',
      reporter: ['text', 'html'],
    },
  },
});
```

## Target Processes

- unit-testing
- react-testing
- tdd-development