nextjs-middleware-vitest-jsdom
Next.js Middleware Testing in Vitest/jsdom
Problem
When testing Next.js middleware with Vitest using the jsdom environment,
NextResponse.next({ request: { headers: request.headers } }) throws:
Error: request.headers must be an instance of Headers
at handleMiddlewareField node_modules/next/src/server/web/spec-extension/response.ts:18:13
at Function.next node_modules/next/src/server/web/spec-extension/response.ts:150:5
Context / Trigger Conditions
- Testing
middleware.tsthat callsNextResponse.next()orNextResponse.redirect() - Using Vitest with
environment: 'jsdom'(common default for Next.js projects) NextRequestconstructs fine, butNextResponse.next()fails- The error occurs at the
instanceof Headerscheck inside Next.js internals
More from hubeiqiao/skills
apple-bento-grid
|
2pptx
Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks
1responsive-video-source-selection
|
1coding-standards
Universal coding standards, best practices, and patterns for TypeScript, JavaScript, React, and Node.js development.
1docx
Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks
1internal-comms
A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).
1