component-testing
Enforces Head Shakers React component testing conventions using Testing Library with proper rendering, user interactions, and accessibility testing.
When & Why to Use This Skill
This Claude skill streamlines React component testing by enforcing industry-standard best practices using React Testing Library. It ensures high-quality, accessible UI development by automating the setup of custom renders, accessibility-first queries, and realistic user interaction simulations, significantly reducing boilerplate and manual testing errors.
Use Cases
- Standardizing Test Suites: Automatically apply project-specific testing conventions and custom renderers across all React component tests to ensure consistency.
- Accessibility-First Development: Enforce the use of ARIA roles and accessibility-based queries (getByRole) to ensure UI components are inclusive and compliant.
- Simulating User Behavior: Efficiently test complex user flows using pre-configured userEvent interactions and mocked dependencies like Clerk or Next.js navigation.
- Rapid Test Scaffolding: Generate robust test files for new .tsx components that include all necessary providers, themes, and mock configurations from the start.
| name | component-testing |
|---|---|
| description | Enforces project React component testing conventions using Testing Library with proper rendering, user interactions, and accessibility testing. |
Component Testing Skill
Purpose
This skill provides React component testing conventions using Testing Library. Component tests verify rendering, user interactions, and accessibility of React components.
Activation
This skill activates when:
- Creating or modifying files in
tests/components/ - Testing React components (
.tsxfiles) - Working with Testing Library
- Testing user interactions with
userEvent
File Patterns
tests/components/**/*.test.tsx
Workflow
- Detect component test work (file path contains
tests/components/) - Load
references/Component-Testing-Conventions.md - Also load
testing-baseskill for shared conventions - Apply component test patterns with Testing Library
- Ensure accessibility-first query usage
Key Patterns (REQUIRED)
Custom Render
- ALWAYS use
customRenderfromtests/setup/test-utils.tsx - Returns
{ user, ...renderResult }with pre-configured userEvent - Includes all providers (theme, clerk, etc.)
Testing Library Queries
- Prefer
getByRolefor accessibility - Use
getByTestIdwith namespace pattern (ui-, feature-, form-*) - Use
getByText,getByLabelTextfor content - Use
queryBy*for assertions on missing elements
User Interactions
- Use
userfrom customRender return (pre-configured userEvent) - Always
awaituser interactions - Test real user behaviors, not implementation details
Pre-Mocked Dependencies
- Clerk, Next.js navigation, sonner, next-themes are pre-mocked
- Mock server actions with
vi.mock()
References
references/Component-Testing-Conventions.md- Complete component testing conventions