PluginBench
Skill
Pass
Audit score 90

vitest

pproenca/dot-skills

How to install vitest

npx skills add https://github.com/pproenca/dot-skills --skill vitest
Claude Code
Cursor
Windsurf
Cline
Full instructions (SKILL.md)

Source of truth, from pproenca/dot-skills.


name: vitest description: Vitest testing framework patterns for test setup, async testing, mocking with vi.*, snapshots, and test performance (formerly test-vitest). This skill should be used when writing or debugging Vitest tests. This skill does NOT cover TDD methodology (use test-tdd skill), API mocking with MSW (use test-msw skill), or Jest-specific APIs.

Vitest Best Practices

Comprehensive performance optimization and best practices guide for Vitest testing framework. Contains 44 rules across 8 categories, prioritized by impact to guide test writing, refactoring, and code review.

When to Apply

Reference these guidelines when:

  • Writing new Vitest tests
  • Debugging flaky or slow tests
  • Setting up test configuration
  • Reviewing test code in PRs
  • Migrating from Jest to Vitest
  • Optimizing CI/CD test performance

Rule Categories by Priority

PriorityCategoryImpactPrefix
1Async PatternsCRITICALasync-
2Test Setup & IsolationCRITICALsetup-
3Mocking PatternsHIGHmock-
4PerformanceHIGHperf-
5Snapshot TestingMEDIUMsnap-
6EnvironmentMEDIUMenv-
7AssertionsLOW-MEDIUMassert-
8Test OrganizationLOWorg-

Quick Reference

1. Async Patterns (CRITICAL)

  • async-await-assertions - Await async assertions to prevent false positives
  • async-return-promises - Return promises from test functions
  • async-fake-timers - Use fake timers for time-dependent code
  • async-waitfor-polling - Use vi.waitFor for async conditions
  • async-concurrent-expect - Use test context expect in concurrent tests
  • async-act-wrapper - Await user events to avoid act warnings
  • async-error-handling - Test async error handling properly

2. Test Setup & Isolation (CRITICAL)

  • setup-beforeeach-cleanup - Clean up state in afterEach hooks
  • setup-restore-mocks - Restore mocks after each test
  • setup-avoid-shared-state - Avoid shared mutable state between tests
  • setup-beforeall-expensive - Use beforeAll for expensive one-time setup
  • setup-reset-modules - Reset modules when testing module state
  • setup-test-factories - Use test factories for complex test data

3. Mocking Patterns (HIGH)

  • mock-vi-mock-hoisting - Understand vi.mock hoisting behavior
  • mock-spyon-vs-mock - Choose vi.spyOn vs vi.mock appropriately
  • mock-implementation-not-value - Use mockImplementation for dynamic mocks
  • mock-msw-network - Use MSW for network request mocking
  • mock-avoid-overmocking - Avoid over-mocking
  • mock-type-safety - Maintain type safety in mocks
  • mock-clear-between-tests - Clear mock state between tests

4. Performance (HIGH)

  • perf-pool-selection - Choose the right pool for performance
  • perf-disable-isolation - Disable test isolation when safe
  • perf-happy-dom - Use happy-dom over jsdom when possible
  • perf-sharding - Use sharding for CI parallelization
  • perf-run-mode-ci - Use run mode in CI environments
  • perf-bail-fast-fail - Use bail for fast failure in CI

5. Snapshot Testing (MEDIUM)

  • snap-inline-over-file - Prefer inline snapshots for small values
  • snap-avoid-large - Avoid large snapshots
  • snap-stable-serialization - Ensure stable snapshot serialization
  • snap-review-updates - Review snapshot updates before committing
  • snap-describe-intent - Name snapshot tests descriptively

6. Environment (MEDIUM)

  • env-per-file-override - Override environment per file when needed
  • env-setup-files - Use setup files for global configuration
  • env-globals-config - Configure globals consistently
  • env-browser-api-mocking - Mock browser APIs not available in test environment

7. Assertions (LOW-MEDIUM)

  • assert-specific-matchers - Use specific matchers over generic ones
  • assert-edge-cases - Test edge cases and boundaries
  • assert-one-assertion-concept - Test one concept per test
  • assert-expect-assertions - Use expect.assertions for async tests
  • assert-toequal-vs-tobe - Choose toBe vs toEqual correctly

8. Test Organization (LOW)

  • org-file-colocation - Colocate test files with source files
  • org-describe-nesting - Use describe blocks for logical grouping
  • org-test-naming - Write descriptive test names
  • org-test-skip-only - Use skip and only appropriately

How to Use

Read individual reference files for detailed explanations and code examples:

Related Skills

  • For TDD methodology, see test-tdd skill
  • For API mocking with MSW, see test-msw skill
  • For TypeScript testing patterns, see typescript skill

Full Compiled Document

For the complete guide with all rules expanded: AGENTS.md

Related skills

More from pproenca/dot-skills and the wider catalog.

ZO

zod

pproenca/dot-skills

Zod schema validation best practices for type safety, parsing, and error handling. This skill should be used when defining z.object schemas, using z.string validations, safeParse, or z.infer. This skill does NOT cover React Hook Form integration patterns (use react-hook-form skill) or OpenAPI client generation (use orval skill).

3.8k installsAudited
EM

emilkowal-animations

pproenca/dot-skills

Emil Kowalski's animation best practices for web interfaces. Use when writing, reviewing, or implementing animations in React, CSS, or Framer Motion. Triggers on tasks involving transitions, easing, gestures, toasts, drawers, or motion.

1.8k installs
CL

clean-architecture

pproenca/dot-skills

Clean Architecture principles and best practices from Robert C. Martin's book. This skill should be used when designing software systems, reviewing code structure, or refactoring applications to achieve better separation of concerns. Triggers on tasks involving layers, boundaries, dependency direction, entities, use cases, or system architecture.

1.7k installs
RE

react-hook-form

pproenca/dot-skills

React Hook Form performance optimization for client-side form validation using useForm, useWatch, useController, useFieldArray, and the v7.55+ subscribe() API. This skill should be used when building client-side controlled forms with React Hook Form library. This skill does NOT cover React 19 Server Actions, useActionState, or server-side form handling (use react-19 skill for those).

1.5k installs
NU

nuqs

pproenca/dot-skills

nuqs (type-safe URL query state) best practices for Next.js and other React frameworks. This skill should be used when writing, reviewing, or refactoring code that uses nuqs for URL state management. Triggers on tasks involving useQueryState, useQueryStates, search params, URL state, query parameters, nuqs parsers, limitUrlUpdates, Standard Schema, NuqsAdapter, or Next.js routing with state.

1.1k installsAudited
CO

code-simplifier

pproenca/dot-skills

Code simplification skill for improving clarity, consistency, and maintainability while preserving exact behavior. Use when simplifying code, reducing complexity, cleaning up recent changes, applying refactoring patterns, or improving readability. Triggers on tasks involving code cleanup, simplification, refactoring, or readability improvements.

1.0k installs