-
Notifications
You must be signed in to change notification settings - Fork 3
jest testing setup done #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: starter_template
Are you sure you want to change the base?
jest testing setup done #1
Conversation
📝 WalkthroughWalkthroughThis PR establishes testing infrastructure for a Next.js project. It introduces Jest configuration with TypeScript support, coverage collection, and environment setup. Testing library dependencies are added alongside upgrades to Next.js (v16.1.3) and React (v19.2.3). TypeScript configuration is updated to use react-jsx runtime. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In `@jest.config.ts`:
- Around line 34-37: The moduleNameMapper currently only maps
"@/components/(.*)" which misses the project-wide "@/..." alias; update
moduleNameMapper to include a catch-all mapping for the "@/..." alias (e.g., add
a mapping for "^@/(.*)$" -> "<rootDir>/$1") so imports like "@/lib/*",
"@/utils/*", "@/hooks/*" resolve correctly, leaving the existing
"@/components/(.*)" mapping intact if desired.
In `@package.json`:
- Line 29: The package version for eslint-config-next is out of sync with
Next.js; update the dependency "eslint-config-next" in package.json to match
Next.js's major version (e.g., change "eslint-config-next": "15.5.0" to a
compatible 16.x version such as "16.1.3" or "^16.1.3") so the lint rules align
with the installed "next" version, then run npm/yarn install and re-run lint to
verify no rule mismatches remain.
🧹 Nitpick comments (1)
jest.config.ts (1)
29-30: Coverage exclusion forapp/**may be overly broad.Line 29 excludes
app/layout.tsxspecifically, but line 30 excludes the entireapp/**directory. This means no code in theappfolder will be included in coverage reports. If this is intentional (e.g., only testing components/utilities), consider adding a comment to clarify. Otherwise, you may want to be more selective about which app files to exclude.
| moduleNameMapper: { | ||
| // ... | ||
| "^@/components/(.*)$": "<rootDir>/components/$1", | ||
| }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Incomplete module alias mapping.
The moduleNameMapper only maps @/components/*, but tsconfig.json defines @/* to map to the entire project root. This will cause resolution failures for imports like @/lib/*, @/utils/*, @/hooks/*, etc.
🔧 Suggested fix
moduleNameMapper: {
- // ...
- "^@/components/(.*)$": "<rootDir>/components/$1",
+ "^@/(.*)$": "<rootDir>/$1",
},📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| moduleNameMapper: { | |
| // ... | |
| "^@/components/(.*)$": "<rootDir>/components/$1", | |
| }, | |
| moduleNameMapper: { | |
| "^@/(.*)$": "<rootDir>/$1", | |
| }, |
🤖 Prompt for AI Agents
In `@jest.config.ts` around lines 34 - 37, The moduleNameMapper currently only
maps "@/components/(.*)" which misses the project-wide "@/..." alias; update
moduleNameMapper to include a catch-all mapping for the "@/..." alias (e.g., add
a mapping for "^@/(.*)$" -> "<rootDir>/$1") so imports like "@/lib/*",
"@/utils/*", "@/hooks/*" resolve correctly, leaving the existing
"@/components/(.*)" mapping intact if desired.
| "@types/react": "^19.2.8", | ||
| "@types/react-dom": "^19.2.3", | ||
| "eslint": "^9", | ||
| "eslint-config-next": "15.5.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Version mismatch: eslint-config-next should match the Next.js major version.
eslint-config-next is at 15.5.0 while next is ^16.1.3. This mismatch can cause lint rules to be out of sync with the framework version.
🔧 Suggested fix
- "eslint-config-next": "15.5.0",
+ "eslint-config-next": "^16.1.3",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "eslint-config-next": "15.5.0", | |
| "eslint-config-next": "^16.1.3", |
🤖 Prompt for AI Agents
In `@package.json` at line 29, The package version for eslint-config-next is out
of sync with Next.js; update the dependency "eslint-config-next" in package.json
to match Next.js's major version (e.g., change "eslint-config-next": "15.5.0" to
a compatible 16.x version such as "16.1.3" or "^16.1.3") so the lint rules align
with the installed "next" version, then run npm/yarn install and re-run lint to
verify no rule mismatches remain.
Summary by CodeRabbit
Tests
Chores
✏️ Tip: You can customize this high-level summary in your review settings.