Intermediatenote 12 of 1203 reasons · 03 notes
ReactIntermediate
Test user behavior, not internals
Assert what users can see and do instead of testing component state names or private helpers.
Code example
Copy, adapt, and ship.
Read the numbered lines, copy the complete snippet, then adjust the values for your project.
// Test user behavior, not internals// Apply this pattern in the smallest file that owns the behavior.const beforeShipping = [ "Name the intent clearly", "Handle the empty or error state", "Keep the change easy to test",];Why this matters
The production reason.
- 01
Assert what users can see and do instead of testing component state names or private helpers. This matters because small implementation habits compound across every page, component, and handoff in a production codebase.
- 02
Use the pattern where the behavior is owned, keep the API small, and make the result easy for another developer to verify later.
- 03
The goal is not clever code. The goal is predictable code that survives new content, new teammates, and real user traffic.
How it holds up outside a demo.
- FrameworksKeep the pattern close to the route, component, or module that owns the behavior.
- CMS or buildersMake the rule reusable so editors do not need to remember implementation details.
- ProductionAdd a small check, test, or review note so the pattern does not regress quietly.
Explore other stacks
Jump into a different technology.
12 React notes on this shelf, and six more stacks beside it.
Use next/image for image optimization
Next.js image optimization starts with next/image sizing, lazy loading, modern formats, and predictable dimensions.
Open the noteAbort stale fetch requests
Cancel outdated browser requests so fast UI changes do not render old data.
Open the noteBuild a CSS gradient generator with code export
A CSS gradient generator should preview color stops, preserve accessible contrast, and export clean CSS code.
Open the noteFix WordPress H1 SEO issues
Fix WordPress SEO issues by keeping one clear H1, escaping template output, and compressing images before WordPress upload.
Open the noteReduce LCP with image optimization
Reduce LCP with image optimization by resizing, converting, and compressing images before they reach production.
Open the noteUse real buttons for actions
If it changes state, use button. If it navigates, use a link.
Open the note