From 023df5990cf71e0e132486a714dea8873256bc2c Mon Sep 17 00:00:00 2001 From: Javi Velasco Date: Mon, 29 Nov 2021 13:52:19 +0100 Subject: [PATCH] Add test with nested subrequests --- .../middleware/core/pages/interface/[id]/_middleware.js | 7 +++++++ .../middleware/core/pages/interface/_middleware.js | 4 +--- .../middleware/core/pages/responses/_middleware.js | 6 +++--- test/integration/middleware/core/test/index.test.js | 8 ++++++++ 4 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 test/integration/middleware/core/pages/interface/[id]/_middleware.js diff --git a/test/integration/middleware/core/pages/interface/[id]/_middleware.js b/test/integration/middleware/core/pages/interface/[id]/_middleware.js new file mode 100644 index 000000000000..679ab02834e0 --- /dev/null +++ b/test/integration/middleware/core/pages/interface/[id]/_middleware.js @@ -0,0 +1,7 @@ +import { NextResponse } from 'next/server' + +export function middleware() { + const response = NextResponse.next() + response.headers.set('x-dynamic-path', 'true') + return response +} diff --git a/test/integration/middleware/core/pages/interface/_middleware.js b/test/integration/middleware/core/pages/interface/_middleware.js index a3ac20fd7c37..53e52ae12f1d 100644 --- a/test/integration/middleware/core/pages/interface/_middleware.js +++ b/test/integration/middleware/core/pages/interface/_middleware.js @@ -54,9 +54,7 @@ export async function middleware(request) { } if (url.pathname.endsWith('/root-subrequest')) { - return fetch( - `http://${request.headers.get('host')}/interface/root-subrequest` - ) + return fetch(url) } return new Response(null, { diff --git a/test/integration/middleware/core/pages/responses/_middleware.js b/test/integration/middleware/core/pages/responses/_middleware.js index 255f1c3180a1..a19326aad8f0 100644 --- a/test/integration/middleware/core/pages/responses/_middleware.js +++ b/test/integration/middleware/core/pages/responses/_middleware.js @@ -57,11 +57,11 @@ export async function middleware(request, ev) { ev.waitUntil( (async () => { writer.write(encoder.encode('this is a streamed '.repeat(10))) - await sleep(2000) + await sleep(200) writer.write(encoder.encode('after 2 seconds '.repeat(10))) - await sleep(2000) + await sleep(200) writer.write(encoder.encode('after 4 seconds '.repeat(10))) - await sleep(2000) + await sleep(200) writer.close() })() ) diff --git a/test/integration/middleware/core/test/index.test.js b/test/integration/middleware/core/test/index.test.js index f0e10c232841..6c3e90e01a56 100644 --- a/test/integration/middleware/core/test/index.test.js +++ b/test/integration/middleware/core/test/index.test.js @@ -447,6 +447,14 @@ function interfaceTests(locale = '') { const element = await browser.elementByCss('.title') expect(await element.text()).toEqual('Dynamic route') }) + + it(`${locale} allows subrequests without infinite loops`, async () => { + const res = await fetchViaHTTP( + context.appPort, + `/interface/root-subrequest` + ) + expect(res.headers.get('x-dynamic-path')).toBe('true') + }) } function getCookieFromResponse(res, cookieName) {