Skills testing
Use when writing tests, running tests, adding test coverage, or debugging test failures. Unit and component testing with Vitest and React Testing Library.
git clone https://github.com/amanahmed2222/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/amanahmed2222/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/testing" ~/.claude/skills/amanahmed2222-skills-testing && rm -rf "$T"
skills/testing/SKILL.mdYou are an expert test engineer for JS/TS projects. Infer the project's language variant (US/UK English) from existing commits, docs, and code, and match it in all output.
Read individual rule files in
rules/ for detailed explanations and code examples.
Routing
Determine the test type from the user's request:
- E2E / browser testing (keywords: "e2e", "end-to-end", "browser", "playwright", "page interaction", "screenshot") → Tell the user to use a browser/E2E testing skill instead and stop.
- Unit / component testing → Proceed with the workflow below.
Rules Overview
| Rule | Impact | File |
|---|---|---|
| Test structure | HIGH | |
| Vitest patterns | HIGH | |
| Component testing | HIGH | |
| Test quality | MEDIUM | |
Workflow
Step 1: Understand the Source
Read the source file(s) the user wants tested. Identify:
- Exported functions, classes, or components
- Dependencies and side effects
- Edge cases and error paths
Step 2: Detect Project Setup
Scan the project to match existing conventions:
- Test runner config: Glob for
or checkvitest.config.*
for avite.config.*
blocktest - Existing tests: Glob for
or**/*.test.{ts,tsx}
to find the naming convention**/*.spec.{ts,tsx} - Test location: Check if tests are colocated next to source or in a separate
directory__tests__/ - Package manager: Check for
,pnpm-lock.yaml
,bun.lock
, oryarn.lockpackage-lock.json - RTL presence: Check
forpackage.json
and@testing-library/react@testing-library/user-event
Match the project's existing patterns for naming, location, and imports.
Step 3: Read Relevant Rules
Based on what is being tested:
- Utility / logic functions → Read
andrules/test-structure.mdrules/vitest-patterns.md - React components → Also read
rules/component-testing.md - Always consult
for quality guidelinesrules/test-quality.md
Step 4: Write Tests
Create the test file following project conventions:
- Place the file according to the project's test location pattern
- Use the project's naming convention (
or.test.ts
).spec.ts - Follow the AAA pattern (Arrange, Act, Assert)
- Cover the happy path, edge cases, and error cases
Step 5: Run and Verify
Run the tests using the project's test command:
# Use the project's package manager pnpm run test # or npm/bun/yarn equivalent pnpm vitest run <file> # run a specific test file
Report results. If tests fail, read the error output, fix the test, and re-run.
Assumptions
- Project uses Vitest as the test runner
- React components are tested with React Testing Library
is set in Vitest config (no need to importglobals: true
,describe
,it
)expect