Babysitter react-testing-library
React Testing Library patterns, queries, user events, and accessibility testing.
install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/web-development/skills/react-testing-library" ~/.claude/skills/a5c-ai-babysitter-react-testing-library && rm -rf "$T"
manifest:
library/specializations/web-development/skills/react-testing-library/SKILL.mdsource content
React Testing Library Skill
Expert assistance for testing React components.
Capabilities
- Write user-centric tests
- Use proper queries
- Handle async operations
- Test accessibility
- Mock dependencies
Test Patterns
import { render, screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; describe('LoginForm', () => { it('should submit form with valid data', async () => { const onSubmit = vi.fn(); const user = userEvent.setup(); render(<LoginForm onSubmit={onSubmit} />); await user.type(screen.getByLabelText(/email/i), 'test@example.com'); await user.type(screen.getByLabelText(/password/i), 'password123'); await user.click(screen.getByRole('button', { name: /sign in/i })); await waitFor(() => { expect(onSubmit).toHaveBeenCalledWith({ email: 'test@example.com', password: 'password123', }); }); }); });
Query Priority
- getByRole (accessibility)
- getByLabelText (forms)
- getByPlaceholderText
- getByText
- getByTestId (last resort)
Target Processes
- react-testing
- unit-testing
- accessibility-testing