Writing Tests
Write effective tests using Vitest and React Testing Library.
Quick Start
Create a unit test in packages/common/__tests__/utils/math.test.ts:
import { describe, it, expect } from 'vitest';
import { add } from '../../utils/math';
describe('math utility', () => {
it('adds two numbers correctly', () => {
expect(add(1, 2)).toBe(3);
});
});
Run tests with npm run test.
Core Patterns
Unit Testing
Focus on pure functions and logic in src/main or packages/common. Use vi.mock() for dependencies.
Component Testing
Test React components in src/renderer. Focus on user interactions and props.
Mocking
Use centralized mock factories for consistent testing across components and contexts.
Debugging Failing Tests
- Read the error output and identify the failing assertion
- Check mock setup — verify
vi.mock() paths and return values match expectations
- For component tests, inspect rendered output with
screen.debug()
- Run a single test in isolation:
npm run test:node -- --no-color -t "test name"
- Verify coverage:
npm run test:coverage to confirm new code is tested
Advanced Usage
For detailed information: