Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
pproenca avatar

React Testing Library

  • 304 installs
  • 191 repo stars
  • Updated July 24, 2026
  • pproenca/dot-skills

react-testing-library is a Claude skill that guides React component and integration testing with Testing Library queries, user events, and accessibility-first assertions for developers who need reliable UI test coverage.

About

react-testing-library is a Claude agent skill from pproenca/dot-skills that applies React Testing Library patterns to everyday frontend development tasks. The skill helps developers write component tests using query priorities, user-event simulation, async utilities like waitFor, and accessibility-oriented selectors instead of implementation details. Developers reach for react-testing-library when adding or fixing tests for React components, hooks, or forms and want guidance aligned with Testing Library best practices rather than Enzyme-style shallow rendering.

  • react-testing-library

React Testing Library by the numbers

  • 304 all-time installs (skills.sh)
  • +10 installs in the week ending Aug 4, 2026 (Skillselion tracking)
  • Ranked #1,339 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/pproenca/dot-skills --skill react-testing-library

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs304
repo stars191
Last updatedJuly 24, 2026
Repositorypproenca/dot-skills

How do you test React components with Testing Library?

Use react-testing-library for development tasks

Who is it for?

React developers adding or refactoring component tests who want accessibility-first Testing Library patterns.

Skip if: Teams testing non-React stacks or needing end-to-end Playwright/Cypress flows instead of unit-level component tests.

When should I use this skill?

A developer asks to test a React component, write RTL specs, mock hooks, or fix flaky Testing Library assertions.

What you get

RTL test files with user-centric queries, event simulations, and async assertions for React components

  • component test files
  • test utilities and mocks

Files

SKILL.mdMarkdownGitHub ↗

React Testing Library Best Practices

Comprehensive testing guide for React components using Testing Library, designed for AI agents and LLMs. Contains 43 rules across 9 categories, prioritized by impact to guide test writing and code review.

When to Apply

Reference these guidelines when:

  • Writing new component tests with React Testing Library
  • Selecting queries (getByRole, getByLabelText, etc.)
  • Handling async operations in tests (findBy, waitFor)
  • Simulating user interactions (userEvent)
  • Reviewing tests for anti-patterns and implementation detail testing

Rule Categories by Priority

PriorityCategoryImpactPrefix
1Query SelectionCRITICALquery-
2Async HandlingCRITICALasync-
3Common Anti-PatternsCRITICALanti-
4User InteractionHIGHuser-
5AssertionsHIGHassert-
6Component SetupMEDIUMsetup-
7Test StructureMEDIUMstruct-
8DebuggingLOW-MEDIUMdebug-
9Accessibility TestingLOWa11y-

Quick Reference

1. Query Selection (CRITICAL)

  • `query-prefer-role` - Prefer getByRole over other queries
  • `query-avoid-testid` - Avoid getByTestId as primary query
  • `query-use-screen` - Use screen for queries
  • `query-label-text-forms` - Use getByLabelText for form fields
  • `query-role-name-option` - Use name option with getByRole
  • `query-get-vs-query` - Use getBy for present, queryBy for absent
  • `query-within-scope` - Use within() to scope queries

2. Async Handling (CRITICAL)

  • `async-findby-over-waitfor` - Use findBy instead of waitFor + getBy
  • `async-await-findby` - Always await findBy queries
  • `async-single-assertion-waitfor` - Single assertion in waitFor
  • `async-no-side-effects-waitfor` - Avoid side effects in waitFor
  • `async-waitfor-disappear` - Use waitForElementToBeRemoved

3. Common Anti-Patterns (CRITICAL)

  • `anti-unnecessary-act` - Avoid unnecessary act() wrapping
  • `anti-manual-cleanup` - Remove manual cleanup calls
  • `anti-implementation-details` - Avoid testing implementation details
  • `anti-empty-waitfor` - Avoid empty waitFor callbacks
  • `anti-container-queries` - Avoid using container for queries
  • `anti-redundant-roles` - Avoid adding redundant ARIA roles

4. User Interaction (HIGH)

  • `user-prefer-userevent` - Use userEvent over fireEvent
  • `user-setup-before-render` - Setup userEvent before render
  • `user-await-interactions` - Always await userEvent interactions
  • `user-keyboard-for-special-keys` - Use keyboard() for special keys
  • `user-clear-before-type` - Use clear() before retyping

5. Assertions (HIGH)

  • `assert-jest-dom-matchers` - Use jest-dom matchers
  • `assert-visible-over-in-document` - Use toBeVisible() for visibility
  • `assert-text-content` - Use toHaveTextContent() for text
  • `assert-have-value` - Use toHaveValue() for inputs
  • `assert-accessible-description` - Use toHaveAccessibleDescription()

6. Component Setup (MEDIUM)

  • `setup-wrapper-providers` - Use wrapper option for providers
  • `setup-custom-render` - Create custom render with providers
  • `setup-mock-modules` - Mock modules at module level
  • `setup-fake-timers` - Configure userEvent with fake timers
  • `setup-render-hook` - Use renderHook for testing hooks

7. Test Structure (MEDIUM)

  • `struct-arrange-act-assert` - Follow Arrange-Act-Assert pattern
  • `struct-one-behavior-per-test` - Test one behavior per test
  • `struct-descriptive-names` - Use descriptive test names
  • `struct-avoid-beforeeach-render` - Avoid render() in beforeEach

8. Debugging (LOW-MEDIUM)

  • `debug-screen-debug` - Use screen.debug() to inspect DOM
  • `debug-logroles` - Use logRoles to find available roles
  • `debug-testing-playground` - Use Testing Playground for queries

9. Accessibility Testing (LOW)

  • `a11y-role-queries-verify` - Role queries verify accessibility
  • `a11y-verify-focus` - Test focus management
  • `a11y-test-aria-states` - Test ARIA states and properties

How to Use

Read individual reference files for detailed explanations and code examples:

  • Section definitions - Category structure and impact levels
  • Rule template - Template for adding new rules

Reference Files

FileDescription
references/_sections.mdCategory definitions and ordering
assets/templates/_template.mdTemplate for new rules
metadata.jsonVersion and reference information

Related skills

FAQ

What does react-testing-library help test?

react-testing-library guides React component and integration tests using Testing Library queries and user-event. The skill focuses on user-visible behavior, async rendering, and accessible selectors rather than component internals.

Does react-testing-library replace E2E testing?

react-testing-library targets component-level RTL specs, not full browser E2E flows. Use it for fast, isolated React UI tests; pair with Playwright or Cypress when you need cross-page journey coverage.

Backend & APIsbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.