From web
Guides testing React components, hooks (renderHook), context providers, forms, and advanced patterns with React Testing Library; covers anti-patterns, excludes E2E.
npx claudepluginhub mintuz/claude-plugins --plugin webThis skill uses the workspace's default tool permissions.
This skill focuses on React-specific testing patterns. For general DOM testing patterns (queries, userEvent, async, accessibility), load the `frontend-testing` skill. For TDD workflow, load the `tdd` skill.
Provides React Testing Library best practices with 43 rules for writing, reviewing, refactoring maintainable user-centric tests. Applies to queries, async handling, userEvent, waitFor in test files.
Enforces React Testing Library best practices with 43 rules across 9 categories including query selection, async handling, anti-patterns, user interactions, and accessibility for writing and reviewing tests.
Provides testing patterns and examples for React components, hooks, and integrations using Vitest, React Testing Library, and Jest.
Share bugs, ideas, or general feedback.
This skill focuses on React-specific testing patterns. For general DOM testing patterns (queries, userEvent, async, accessibility), load the frontend-testing skill. For TDD workflow, load the tdd skill.
React components are functions - Test them like functions: inputs (props) → output (rendered DOM).
Test behavior, not implementation:
Modern RTL handles cleanup automatically:
act() for render, userEvent, or async queriescleanup() - it's automaticbeforeEach| Topic | Guide |
|---|---|
| Testing components, props, and conditional rendering | components.md |
| Testing custom hooks with renderHook | hooks.md |
| Testing context providers and consumers | context.md |
| Testing form inputs, submissions, and validation | forms.md |
| Common React testing mistakes to avoid | anti-patterns.md |
| Loading states, error boundaries, portals, Suspense | advanced.md |
Use components.md when you need:
Use hooks.md when you need:
renderHookresult.current, act(), and rerender()Use context.md when you need:
wrapper option with providersUse forms.md when you need:
Use anti-patterns.md when you need:
act() wrappingcleanup() is unnecessarybeforeEach render patternsUse advanced.md when you need:
React-specific checks:
render() from @testing-library/react (not enzyme's shallow/mount)renderHook() for custom hookswrapper option for context providersact() calls (RTL handles it)cleanup() calls (automatic)beforeEach rendertdd skill)frontend-testing skill)