analyzing-test-coverage
11
总安装量
6
周安装量
#27355
全站排名
安装命令
npx skills add https://github.com/saleor/configurator --skill analyzing-test-coverage
Agent 安装分布
claude-code
3
antigravity
3
windsurf
2
trae
2
opencode
2
codex
2
Skill 文档
Testing Strategy Analyst
Purpose
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
- Analyzing test coverage gaps
- Setting up mocks for testing
- Organizing test files
- Debugging test failures
Table of Contents
- Testing Stack
- Test Organization
- Quick Pattern Reference
- Running Tests
- Test Quality Checklist
- Common Pitfalls
- References
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
# Run all tests
pnpm test
# Run specific test file
pnpm test -- --filter=category-service
# Run tests matching pattern
pnpm test -- --grep="should create category"
# Watch mode
pnpm test -- --watch
# With coverage
pnpm test -- --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 Pitfalls
Not Resetting Mocks:
beforeEach(() => {
vi.clearAllMocks(); // Always reset!
});
Testing Implementation Details:
// BAD - tests internal structure
expect(service.internalMap.size).toBe(1);
// GOOD - tests behavior
expect(await service.findBySlug('test')).toBeDefined();
Flaky Async Tests:
// BAD - race condition
const result = service.process();
expect(result).toBe(expected);
// GOOD - await properly
const result = await service.process();
expect(result).toBe(expected);
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).