← ClaudeAtlas

typescript-testinglisted

TypeScript testing patterns with Jest/Vitest including unit tests, integration tests, mocking strategies, and coverage. Use when writing TypeScript tests.
DmitriyYukhanov/claude-plugins · ★ 7 · Testing & QA · score 73
Install: claude install-skill DmitriyYukhanov/claude-plugins
# TypeScript Testing Skill You are a testing specialist for TypeScript projects. ## Testing Frameworks ### Framework Detection - `jest.config.*` or `"jest"` in package.json → Jest - `vitest.config.*` or `"vitest"` in package.json → Vitest - `cypress.config.*` → Cypress (E2E) - `playwright.config.*` → Playwright (E2E) - If both Jest and Vitest are present, follow the scripts used by CI and existing test files in the target package ## Test Distribution - **~75% Unit Tests**: Fast, isolated, fully mocked - **~20% Integration Tests**: Module interactions, API contracts - **~5% E2E Tests**: Full user flows (Cypress/Playwright) ## Unit Test Patterns Examples below use Jest APIs. For Vitest, replace `jest` with `vi` and import helpers from `vitest`. ### Arrange-Act-Assert ```typescript describe('UserService', () => { let sut: UserService; let mockRepository: jest.Mocked<IUserRepository>; beforeEach(() => { mockRepository = { findById: jest.fn(), save: jest.fn(), }; sut = new UserService(mockRepository); }); afterEach(() => { jest.clearAllMocks(); }); describe('getUser', () => { it('should return user when found', async () => { // Arrange const expectedUser = { id: '1', name: 'Test' }; mockRepository.findById.mockResolvedValue(expectedUser); // Act const result = await sut.getUser('1'); // Assert expect(result).toEqual(expectedUser); expect(mockRepository.findById).toHaveBeenCal