hotovo / writing-tests
Install for your project team
Run this command in your project directory to install the skill for your entire team:
mkdir -p .claude/skills/writing-tests && curl -L -o skill.zip "https://fastmcp.me/Skills/Download/4125" && unzip -o skill.zip -d .claude/skills/writing-tests && rm skill.zip
Project Skills
This skill will be saved in .claude/skills/writing-tests/ and checked into git. All team members will have access to it automatically.
Important: Please verify the skill by reviewing its instructions before using it.
Comprehensive guide for writing unit tests, integration tests, and component tests in AiderDesk using Vitest. Use when creating new tests, configuring mocks, or organizing test files.
0 views
0 installs
Skill Content
---
name: writing-tests
description: Write unit tests, component tests, and integration tests for AiderDesk using Vitest and React Testing Library. Use when creating new tests, adding test coverage, configuring mocks, setting up test files, or debugging failing tests.
---
# Writing Tests
Write effective tests using Vitest and React Testing Library.
## Quick Start
Create a unit test in `src/common/__tests__/utils/math.test.ts`:
```typescript
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 `src/common`. Use `vi.mock()` for dependencies.
- [references/unit-testing-examples.md](references/unit-testing-examples.md)
### Component Testing
Test React components in `src/renderer`. Focus on user interactions and props.
- [references/component-testing-patterns.md](references/component-testing-patterns.md)
### Mocking
Use centralized mock factories for consistent testing across components and contexts.
- [references/mocking-guide.md](references/mocking-guide.md) - Mock factories and API patterns
## Debugging Failing Tests
1. Read the error output and identify the failing assertion
2. Check mock setup — verify `vi.mock()` paths and return values match expectations
3. For component tests, inspect rendered output with `screen.debug()`
4. Run a single test in isolation: `npm run test:node -- --no-color -t "test name"`
5. Verify coverage: `npm run test:coverage` to confirm new code is tested
## Advanced Usage
For detailed information:
- [references/test-organization.md](references/test-organization.md) - Directory structure and naming
- [references/running-tests.md](references/running-tests.md) - CLI commands and coverage
- [references/best-practices.md](references/best-practices.md) - Principles and patterns
- [references/test-patterns.md](references/test-patterns.md) - Code templates
- [assets/test-checklist.md](assets/test-checklist.md) - Pre-flight checklist