nextjs-middleware-vitest-jsdom
Installation
SKILL.md
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