Vitest
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.From its SKILL.md
npx -y skills add Pythoughts-labs/react-frontend-skills --skill vitestAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.8 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
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
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Async Patterns | CRITICAL | async- |
| 2 | Test Setup & Isolation | CRITICAL | setup- |
| 3 | Mocking Patterns | HIGH | mock- |
| 4 | Performance | HIGH | perf- |
| 5 | Snapshot Testing | MEDIUM | snap- |
| 6 | Environment | MEDIUM | env- |
| 7 | Assertions | LOW-MEDIUM | assert- |
| 8 | Test Organization | LOW | org- |
Quick Reference
1. Async Patterns (CRITICAL)
async-await-assertions- Await async assertions to prevent false positivesasync-return-promises- Return promises from test functionsasync-fake-timers- Use fake timers for time-dependent codeasync-waitfor-polling- Use vi.waitFor for async conditionsasync-concurrent-expect- Use test context expect in concurrent testsasync-act-wrapper- Await user events to avoid act warningsasync-error-handling- Test async error handling properly
2. Test Setup & Isolation (CRITICAL)
setup-beforeeach-cleanup- Clean up state in afterEach hookssetup-restore-mocks- Restore mocks after each testsetup-avoid-shared-state- Avoid shared mutable state between testssetup-beforeall-expensive- Use beforeAll for expensive one-time setupsetup-reset-modules- Reset modules when testing module statesetup-test-factories- Use test factories for complex test data
3. Mocking Patterns (HIGH)
mock-vi-mock-hoisting- Understand vi.mock hoisting behaviormock-spyon-vs-mock- Choose vi.spyOn vs vi.mock appropriatelymock-implementation-not-value- Use mockImplementation for dynamic mocksmock-msw-network- Use MSW for network request mockingmock-avoid-overmocking- Avoid over-mockingmock-type-safety- Maintain type safety in mocksmock-clear-between-tests- Clear mock state between tests
4. Performance (HIGH)
perf-pool-selection- Choose the right pool for performanceperf-disable-isolation- Disable test isolation when safeperf-happy-dom- Use happy-dom over jsdom when possibleperf-sharding- Use sharding for CI parallelizationperf-run-mode-ci- Use run mode in CI environmentsperf-bail-fast-fail- Use bail for fast failure in CI
5. Snapshot Testing (MEDIUM)
snap-inline-over-file- Prefer inline snapshots for small valuessnap-avoid-large- Avoid large snapshotssnap-stable-serialization- Ensure stable snapshot serializationsnap-review-updates- Review snapshot updates before committingsnap-describe-intent- Name snapshot tests descriptively
6. Environment (MEDIUM)
env-per-file-override- Override environment per file when neededenv-setup-files- Use setup files for global configurationenv-globals-config- Configure globals consistentlyenv-browser-api-mocking- Mock browser APIs not available in test environment
7. Assertions (LOW-MEDIUM)
assert-specific-matchers- Use specific matchers over generic onesassert-edge-cases- Test edge cases and boundariesassert-one-assertion-concept- Test one concept per testassert-expect-assertions- Use expect.assertions for async testsassert-toequal-vs-tobe- Choose toBe vs toEqual correctly
8. Test Organization (LOW)
org-file-colocation- Colocate test files with source filesorg-describe-nesting- Use describe blocks for logical groupingorg-test-naming- Write descriptive test namesorg-test-skip-only- Use skip and only appropriately
How to Use
Read individual reference files for detailed explanations and code examples:
- async-await-assertions - Example rule file
- mock-vi-mock-hoisting - Example rule file
Related Skills
- For TDD methodology, see
test-tddskill - For API mocking with MSW, see
test-mswskill - For TypeScript testing patterns, see
typescriptskill
Full Compiled Document
For the complete guide with all rules expanded: AGENTS.md
What ships with it: 45 files
102.0 KB alongside SKILL.md
references/
- assert-edge-cases.md2.3 KB
- assert-expect-assertions.md2.3 KB
- assert-one-assertion-concept.md2.6 KB
- assert-specific-matchers.md2.1 KB
- assert-toequal-vs-tobe.md2.1 KB
- async-act-wrapper.md2.4 KB
- async-await-assertions.md1.3 KB
- async-concurrent-expect.md1.9 KB
- async-error-handling.md2.1 KB
- async-fake-timers.md2.0 KB
- async-return-promises.md1.5 KB
- async-waitfor-polling.md1.8 KB
- env-browser-api-mocking.md2.2 KB
- env-globals-config.md1.8 KB
- env-per-file-override.md2.1 KB
- env-setup-files.md2.3 KB
- mock-avoid-overmocking.md2.8 KB
- mock-clear-between-tests.md2.1 KB
- mock-implementation-not-value.md2.3 KB
- mock-msw-network.md2.6 KB
- mock-spyon-vs-mock.md2.4 KB
- mock-type-safety.md2.4 KB
- mock-vi-mock-hoisting.md2.1 KB
- org-describe-nesting.md2.4 KB
- org-file-colocation.md1.7 KB
- org-test-naming.md2.0 KB
- org-test-skip-only.md1.8 KB
- perf-bail-fast-fail.md1.7 KB
- perf-disable-isolation.md2.0 KB
- perf-happy-dom.md1.9 KB
- perf-pool-selection.md2.0 KB
- perf-run-mode-ci.md1.6 KB
- perf-sharding.md2.0 KB
- setup-avoid-shared-state.md2.5 KB
- setup-beforeall-expensive.md2.3 KB
- setup-beforeeach-cleanup.md1.9 KB
- setup-reset-modules.md2.5 KB
- setup-restore-mocks.md2.1 KB
- setup-test-factories.md2.8 KB
- AGENTS.md8.8 KB
5 more files not listed here. See all 45 in the repository.