MCPInstall

vitest-best-practices

Comprehensive vitest testing patterns covering test structure, AAA pattern, parameterized tests, assertions, mocking, test doubles, error handling, async testing, and performance optimization. Use when writing, reviewing, or refactoring vitest tests, or when user mentions vitest, testing, TDD, test coverage, mocking, assertions, or test files (.test.ts, .spec.ts).

Installs
83
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/pageai-pro/ralph-loop --skill vitest-best-practices
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads vitest-best-practices automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Vitest Best Practices

When to Apply This Skill

Use this skill when you encounter any of these scenarios:

File Patterns

  • Working with *.test.ts, *.spec.ts, or similar test files
  • Creating new test files for TypeScript/JavaScript modules
  • Reviewing existing vitest test suites

User Intent Keywords

  • User mentions: vitest, testing, TDD, BDD, unit tests, integration tests
  • User asks to: write tests, add test coverage, fix failing tests, refactor tests
  • User discusses: mocking, stubbing, assertions, test performance, test organization

Code Context

  • Files importing from vitest (describe, it, expect, vi)
  • Test setup/teardown code (beforeEach, afterEach, beforeAll, afterAll)
  • Mock/spy implementations using vi.mock(), vi.spyOn(), vi.fn()
  • Assertion chains (expect(...).toEqual(), .toBe(), .toThrow(), etc.)

Common Tasks

  • Writing new test cases for existing functionality
  • Refactoring tests for better clarity or performance
  • Debugging flaky or failing tests
  • Improving test coverage or maintainability
  • Reviewing test code for best practices compliance

Do NOT Use This Skill When

  • Writing end-to-end tests with Playwright/Cypress (different scope)
  • The task is purely about implementation code, not tests

What This Skill Covers

This skill provides comprehensive guidance on:

  1. Test Organization: File placement, naming conventions, grouping strategies
  2. AAA Pattern: Arrange, Act, Assert structure for clarity
  3. Parameterized Tests: Using it.each() for testing variations
  4. Error Handling: Testing exceptions, edge cases, and fault injection
  5. Assertions: Choosing strict assertions (toEqual, toStrictEqual, toThrow)
  6. Test Doubles: Fakes, stubs, mocks, spies - when to use each
  7. Async Testing: Promises, async/await, timers, and concurrent tests
  8. Performance: Fast tests, avoiding expensive operations, cleanup patterns
  9. Vitest-Specific Features: Coverage, watch mode, benchmarking, type testing, setup files
  10. Snapshot Testing: When and how to use snapshots effectively

How to Use

This skill uses a progressive disclosure structure to minimize context usage:

1. Start with the Overview (AGENTS.md)

Read AGENTS.md for a concise overview of all rules with one-line summaries.

2. Load Specific Rules as Needed

When you identify a relevant optimization, load the corresponding reference file for detailed implementation guidance:

Core Patterns:

  • organization.md
  • aaa-pattern.md
  • parameterized-tests.md
  • error-handling.md
  • assertions.md
  • test-doubles.md

Advanced Topics:

  • async-testing.md
  • performance.md
  • vitest-features.md
  • snapshot-testing.md

3. Apply the Pattern

Each reference file contains:

  • ❌ Incorrect examples showing the anti-pattern
  • ✅ Correct examples showing the optimal implementation
  • Explanations of why the pattern matters

Quick Example

This skill helps you transform unclear tests into clear, maintainable ones:

Before (unclear):

test('product test', () => {
  const p = new ProductService().add({name: 'Widget'});
  expect(p.status).toBe('pendingApproval');
});

After (optimized with this skill):

describe('ProductService', () => {
  describe('Add new product', () => {
    it('should have status "pending approval" when no price is specified', () => {
      // Arrange
      const productService = new ProductService();

      // Act
      const newProduct = productService.add({name: 'Widget'});

      // Assert
      expect(newProduct.status).toEqual('pendingApproval');
    });
  });
});

Key Principles

  • Clarity over cleverness: Tests should be instantly understandable
  • Flat structure: Avoid deep nesting in describe blocks
  • One assertion per concept: Focus tests on single behaviors
  • Strict assertions: Prefer toEqual over toBe, toStrictEqual when needed
  • Minimal mocking: Use real implementations when practical
  • Fast execution: Keep tests quick through efficient setup/teardown

FAQ

What does the vitest-best-practices skill do?

Comprehensive vitest testing patterns covering test structure, AAA pattern, parameterized tests, assertions, mocking, test doubles, error handling, async testing, and performance optimization. Use when writing, reviewing, or refactoring vitest tests, or when user mentions vitest, testing, TDD, test coverage, mocking, assertions, or test files (.test.ts, .spec.ts).

How do I install vitest-best-practices?

Run npx skills add https://github.com/pageai-pro/ralph-loop --skill vitest-best-practices in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/vitest-best-practices/ (personal) or .claude/skills/vitest-best-practices/ (project).

Which AI agents can use vitest-best-practices?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is vitest-best-practices safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains vitest-best-practices?

It is published by pageai-pro in pageai-pro/ralph-loop. It has 83 recorded installs.

More from pageai-pro/ralph-loop

View all →

prd-creator

pageai-pro/ralph-loop

Guides creation of comprehensive Product Requirement Documents (PRDs) for software projects through structured questioning and validation, then generates implementation task lists in JSON format. Use when users want to document a software idea, create specifications for development, plan a new application feature/bug, or break down requirements into actionable tasks. Transforms ideas into implementation-ready documents with verifiable pass criteria.

e2e-tester

pageai-pro/ralph-loop

Open the skill to read its SKILL.md instructions.

Testing & QA78 installs

frontend-code-review

pageai-pro/ralph-loop

Trigger when the user requests a review of frontend files (e.g., .tsx, .ts, .js). Support both pending-change reviews and focused file reviews while applying the checklist rules.

component-refactoring

pageai-pro/ralph-loop

Open the skill to read its SKILL.md instructions.

mysql

pageai-pro/ralph-loop

Open the skill to read its SKILL.md instructions.

Data & Databases72 installs

frontend-testing

pageai-pro/ralph-loop

Open the skill to read its SKILL.md instructions.

Popular testing & qa skills

View category →

tdd

mattpocock/skills

Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.

Testing & QA1.2M installs

grilling

mattpocock/skills

Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.

Testing & QA996.2K installs

migrate-to-shoehorn

mattpocock/skills

Migrate test files from as type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace as in tests, or needs partial test data.

Testing & QA484.1K installs

run-train

lllllllama/rigorpilot-skills

Rigor Train skill for deep learning research repositories. Use when a documented or selected training command should be run conservatively for startup verification, short-run verification, full kickoff, or resume, with command, config, seed, log, checkpoint, status, and metric evidence written to standardized trainoutputs/. Do not use for environment setup, exploratory sweeps, speculative idea implementation, or end-to-end orchestration.

Testing & QA337.8K installs

test-driven-development

obra/superpowers

Use when implementing any feature or bugfix, before writing implementation code

Testing & QA261.8K installs

Use when implementation is complete, all tests pass, and you need to decide how to integrate the work

Testing & QA216.8K installs