analyzing-test-coverage
SKILL.md
Testing Strategy Analyst
Overview
Guide the creation of comprehensive tests following project patterns for unit tests, integration tests, and E2E tests using Vitest, MSW, and project-specific test helpers.
When to Use
- Writing new tests for entities or services
- Analyzing test coverage gaps
- Setting up mocks (MSW handlers, vi.fn)
- Organizing test files in the module structure
- Debugging test failures
Testing Stack
| Tool | Purpose |
|---|---|
| Vitest | Test runner and assertion library |
| MSW | Mock Service Worker for network mocking |
| vi | Vitest mock utilities |
| test-helpers/ | Project-specific test utilities |
Test Organization
src/
├── modules/
│ └── category/
│ ├── category-service.ts
│ ├── category-service.test.ts # Unit tests
│ ├── repository.ts
│ ├── repository.test.ts # Repository tests
│ └── category.integration.test.ts # Integration tests
├── core/
│ └── diff/
│ └── comparators/
│ ├── category-comparator.ts
│ └── category-comparator.test.ts
├── test-helpers/
│ ├── config-file-builder.ts
│ ├── graphql-mocks.ts
│ ├── config-fixtures.ts
│ └── cli-runner.ts
└── lib/
└── test-setup.ts # Global test setup
e2e/
└── ... # End-to-end tests
Quick Pattern Reference
Service Tests
See references/patterns.md for full examples. Key structure:
- Declare dependencies at suite level
- Reset mocks in
beforeEachwithvi.clearAllMocks() - Use describe blocks for method grouping
- Follow Arrange-Act-Assert pattern
Repository Tests with MSW
See references/patterns.md for MSW setup. Key steps:
- Define handlers with
graphql.query()/graphql.mutation() - Setup server with
beforeAll/afterAll - Override handlers for specific test cases with
server.use()
Test Data Builders
See references/test-builders.md for implementations. Pattern:
- Create builder class with fluent interface
- Validate with Zod schema in
build() - Provide factory functions for convenience
Mock Functions
See references/patterns.md for examples. Common patterns:
vi.fn()for simple mocksvi.mocked()for typed accessvi.mock()for module mocking
Running Tests
pnpm test # All tests
pnpm test -- --filter=category-service # Specific file
pnpm test -- --grep="should create category" # Pattern match
pnpm test -- --watch # Watch mode
pnpm test -- --coverage # With coverage
See references/commands-reference.md for advanced options and coverage configuration.
Test Quality Checklist
For Every Test
- Follows Arrange-Act-Assert pattern
- Has descriptive test name
- Tests one thing per test
- Includes both positive and negative cases
- Uses typed mocks (not
any) - Cleans up after itself (beforeEach/afterEach)
For Test Suites
- Covers all public methods
- Covers error scenarios
- Covers edge cases
- Uses schema-validated test data
- Has integration tests for complex flows
Validation Checkpoints
| Phase | Validate | Command |
|---|---|---|
| Test written | File exists | Check *.test.ts created |
| Tests pass | All green | pnpm test <file> |
| Coverage adequate | Key paths covered | pnpm test --coverage |
| Mocks typed | No any in mocks |
npx tsc --noEmit |
Common Mistakes
| Mistake | Fix |
|---|---|
| Not resetting mocks | Add vi.clearAllMocks() in beforeEach |
| Testing implementation details | Test behavior (public API output), not internal state |
| Flaky async tests | Always await async operations before asserting |
Using any in mocks |
Use vi.mocked() for typed mock access |
| Missing error case tests | Add tests for rejection, validation failure, empty input |
References
Skill Reference Files
references/patterns.md- Detailed test patterns with full code examplesreferences/test-builders.md- Builder pattern implementationsreferences/commands-reference.md- Complete command reference
Project Resources
{baseDir}/src/test-helpers/- Test utilities{baseDir}/vitest.config.ts- Test configuration{baseDir}/docs/TESTING_PROTOCOLS.md- Testing protocols
External Documentation
- Vitest docs: https://vitest.dev
- MSW docs: https://mswjs.io
Related Skills
- Complete entity workflow: See
adding-entity-typesfor E2E implementation including tests - Zod test patterns: See
designing-zod-schemasfor schema validation tests - GraphQL mocking: See
writing-graphql-operationsfor MSW handlers
Quick Reference Rule
For a condensed quick reference, see .claude/rules/testing-standards.md (automatically loaded when editing *.test.ts files).
Weekly Installs
17
Repository
saleor/configuratorGitHub Stars
26
First Seen
Jan 24, 2026
Security Audits
Installed on
gemini-cli13
codex13
opencode13
github-copilot13
claude-code12
antigravity12