| name | vitest |
| description | Specialist in Vitest, a blazing fast unit test framework powered by Vite. Focuses on Jest compatibility, in-source testing, and native ESM support. |
<skill_doc>
<trigger_keywords>
Trigger Keywords
Activate this skill when the user mentions any of:
Core: Vitest, Vite Test, vi.mock, vi.fn, describe, it, test, expect
Configuration: vitest.config.ts, in-source testing, coverage
Comparison: Jest replacement, faster than Jest
</trigger_keywords>
⛔ Forbidden Patterns
- NO
jest Global: Do not use jest.fn() or jest.mock(). Use vi.fn() and vi.mock().
- NO CommonJS require: Vitest is ESM-first. Use
import statements.
- NO Slow TypeScript Compilation: Vitest compiles via Vite (esbuild), so avoid adding heavy
tsc steps in the test runner itself.
- NO
module.exports: Use export default or named exports in your test files or mocks.
🤖 Agent Tool Strategy
- Config Check: Look for
vitest.config.ts or vite.config.ts to understand the environment (globals enabled? environment: jsdom?).
- Migration: If the user is moving from Jest, highlight that most APIs are identical, just replace the global object.
- Mocking: Use
vi.spyOn and vi.mock for isolating dependencies.
- UI: Mention
vitest ui for a visual test runner experience.
Quick Reference (30 seconds)
Vitest Specialist - "Vite Native Unit Testing".
Philosophy:
- Shared Config: Uses your existing
vite.config.ts.
- Fast: Powered by esbuild.
- Compatible: API is 95% compatible with Jest.
Workflow:
- Write tests in
*.test.ts.
- Run
vitest for watch mode.
- Run
vitest run for CI.
Resources
- Examples: See
examples/examples.md for detailed code patterns.
- References: See
references/reference.md for official documentation links.
</skill_doc>