<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
jestGlobal: Do not usejest.fn()orjest.mock(). Usevi.fn()andvi.mock(). - NO CommonJS require: Vitest is ESM-first. Use
importstatements. - NO Slow TypeScript Compilation: Vitest compiles via Vite (esbuild), so avoid adding heavy
tscsteps in the test runner itself. - NO
module.exports: Useexport defaultor named exports in your test files or mocks.
π€ Agent Tool Strategy
- Config Check: Look for
vitest.config.tsorvite.config.tsto 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.spyOnandvi.mockfor isolating dependencies. - UI: Mention
vitest uifor 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
vitestfor watch mode. - Run
vitest runfor CI.
Resources
- Examples: See
examples/examples.mdfor detailed code patterns. - References: See
references/reference.mdfor official documentation links. </skill_doc>