Testing React Apps
Test components the way users interact with them using Vitest and React Testing Library — not implementation details. Set up Vitest with jsdom, test components with user interaction, mock network requests with MSW, and test a component that uses TanStack Query.
React Testing Library deliberately makes it awkward to reach into a component's internal state or check exactly which CSS class got applied — queries are built around what a user can actually see and do (getByRole, getByLabelText), which means tests survive refactors that don't change behavior. This project sets up Vitest with jsdom, tests components with user interaction, mocks network requests with MSW, and tests a component that uses TanStack Query.
Step 1 — Set up Vitest with jsdom and Testing Library
Step 2 — Test interactions with user-event, not fireEvent
Step 3 — Mock network requests with MSW
Step 4 — Test a component that uses TanStack Query
Secret Mission: hit 80% coverage on one feature
Before You Go
Test what you just learned
Self-testing is one of the best ways to retain new skills. Unlock project quizzes to check your understanding.
Log in to unlock0 / 7 complete
