vitest_runner
Vitest
Description
Modern JavaScript/TypeScript testing with Vitest including mocking and coverage.
When to Use
- Testing JavaScript/TypeScript
- React component testing
- Unit and integration tests
Core Patterns
Basic Tests
import { describe, it, expect } from 'vitest';
describe('math', () => {
it('should add numbers', () => {
expect(1 + 1).toBe(2);
});
it('should throw on invalid input', () => {
expect(() => divide(1, 0)).toThrow('Division by zero');
});
});
Mocking
import { vi, describe, it, expect } from 'vitest';
// Mock module
vi.mock('./api', () => ({
fetchUser: vi.fn().mockResolvedValue({ id: 1 })
}));
// Mock function
const callback = vi.fn();
callback('arg');
expect(callback).toHaveBeenCalledWith('arg');
Async Tests
it('should fetch data', async () => {
const data = await fetchData();
expect(data).toEqual({ id: 1 });
});
it('should reject on error', async () => {
await expect(fetchData()).rejects.toThrow('Error');
});
React Testing
import { render, screen } from '@testing-library/react';
import { userEvent } from '@testing-library/user-event';
it('should handle click', async () => {
const onClick = vi.fn();
render(<Button onClick={onClick}>Click</Button>);
await userEvent.click(screen.getByRole('button'));
expect(onClick).toHaveBeenCalled();
});
🔄 Workflow
Kaynak: Vitest Official Documentation & Vite + Testing Best Practices
Aşama 1: Environment & Setup
- Vite Integration:
vitest.config.tsdosyasının Vite ayarlarıyla senkronize olduğunu doğrula. - Environment Choice: Web projeleri için
jsdomveyahappy-dom, backend içinnodeenvironment'ı seç. - Global Mocks: Sık kullanılan harici servisler (API, LocalStorage) için
setup.tsiçinde global mock'ları tanımla.
Aşama 2: Unit & Component Testing
- Isolation Layer: Bağımlılıkları
vi.mock()ile izole ederek sadece hedef üniteyi test et. - Assertion Strategy:
expectmetodlarını kullanarak beklenen sonuçları (be.truthy, toEqual, toBeCalled) doğrula. - Snapshot Testing: UI bileşenlerindeki (Component) beklenmedik arayüz değişikliklerini
toMatchSnapshot()ile yakala.
Aşama 3: Performance & Coverage
- Watch Mode: Geliştirme sürecinde testleri
watchmodunda tutarak anlık geri bildirim al. - Coverage Analysis:
v8veyaistanbulprovider kullanarak test kapsamını raporla. - Dependency Cleanup:
vi.clearAllMocks()ile testler arası veri kirliliğini (Pollution) önle.
Kontrol Noktaları
| Aşama | Doğrulama |
|---|---|
| 1 | Test dosyaları *.test.ts veya *.spec.ts formatında mı? |
| 2 | Asenkron kodlar (async/await) doğru handle ediliyor mu? |
| 3 | Karmaşık nesne karşılaştırmalarında toBe (referans) yerine toEqual (değer) mi kullanıldı? |
Vitest Runner v1.5 - With Workflow
More from vuralserhat86/antigravity-agentic-skills
skill_creator
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
37huggingface_transformers
Hugging Face Transformers best practices including model loading, tokenization, fine-tuning workflows, and inference optimization. Use when working with transformer models, fine-tuning LLMs, implementing NLP tasks, or optimizing transformer inference.
22responsive_design
Build responsive, mobile-first layouts using fluid containers, flexible units, media queries, and touch-friendly design that works across all screen sizes. Use this skill when creating or modifying UI layouts, responsive grids, breakpoint styles, mobile navigation, or any interface that needs to adapt to different screen sizes. Apply when working with responsive CSS, media queries, viewport settings, flexbox/grid layouts, mobile-first styling, breakpoint definitions (mobile, tablet, desktop), touch target sizing, relative units (rem, em, %), image optimization for different screens, or testing layouts across multiple devices. Use for any task involving multi-device support, responsive design patterns, or adaptive layouts.
19cache_patterns
Instruction set for enabling and operating the Spring Cache abstraction in Spring Boot when implementing application-level caching for performance-sensitive workloads.
16zustand_state
Production-tested setup for Zustand state management in React. Includes patterns for persistence, devtools, and TypeScript patterns. Prevents hydration mismatches and render loops.
14platform_engineering
Design and implement Internal Developer Platforms (IDPs) with self-service capabilities, golden paths, and developer experience optimization. Covers platform strategy, IDP architecture (Backstage, Port), infrastructure orchestration (Crossplane), GitOps (Argo CD), and adoption patterns. Use when building developer platforms, improving DevEx, or establishing platform teams.
13