testing
Use this skill when writing, reviewing, or deciding where to place tests in the Next.js frontend package. Covers which project (unit / integration / storybook) to use for a given scenario, what NOT to
Files2
View on GitHubSKILL.mdapps/nextjs/.claude/skills/testing/SKILL.md
GitHubTesting skill
See guidelines.md for the full decision rules and examples.
Quick reference
| Project | Pattern | Environment | Purpose |
|---|---|---|---|
| unit | *.unit.test.ts(x) |
happy-dom | Pure logic: utils, hooks, data transforms |
| integration | *.integration.test.tsx |
happy-dom | User flows across components with MSW |
| storybook | *.stories.tsx |
browser | Visual states, a11y, interaction per component |
One-line decision rule
"If this test fails, do I tell the designer or the engineer?"
- Designer → storybook
- Engineer → unit or integration
File placement in this package
- Unit / integration tests → co-located with the component:
src/components/Button/Button.unit.test.tsx - Stories → co-located with the component:
src/components/Button/Button.stories.tsx - MSW handlers →
src/mocks/handlers/ - Storybook config →
apps/nextjs/.storybook/ vitest.config.ts→ monorepo root (not in this package)
For the full decision guide, do-not-duplicate rules, and code examples,
read guidelines.md in this directory.