diff --git a/tests/fixtures/middleware-conditions/app/layout.js b/tests/fixtures/middleware-conditions/app/layout.js deleted file mode 100644 index 6565e7bafd..0000000000 --- a/tests/fixtures/middleware-conditions/app/layout.js +++ /dev/null @@ -1,12 +0,0 @@ -export const metadata = { - title: 'Simple Next App', - description: 'Description for Simple Next App', -} - -export default function RootLayout({ children }) { - return ( - - {children} - - ) -} diff --git a/tests/fixtures/middleware-conditions/app/test/next/page.js b/tests/fixtures/middleware-conditions/app/test/next/page.js deleted file mode 100644 index 0908c69938..0000000000 --- a/tests/fixtures/middleware-conditions/app/test/next/page.js +++ /dev/null @@ -1,12 +0,0 @@ -import { headers } from 'next/headers' - -export default function Page() { - const headersList = headers() - const message = headersList.get('x-hello-from-middleware-req') - - return ( -
-

Message from middleware: {message}

-
- ) -} diff --git a/tests/fixtures/middleware-conditions/app/page.js b/tests/fixtures/middleware-conditions/pages/index.js similarity index 100% rename from tests/fixtures/middleware-conditions/app/page.js rename to tests/fixtures/middleware-conditions/pages/index.js diff --git a/tests/fixtures/middleware-conditions/app/other/page.js b/tests/fixtures/middleware-conditions/pages/other.js similarity index 100% rename from tests/fixtures/middleware-conditions/app/other/page.js rename to tests/fixtures/middleware-conditions/pages/other.js diff --git a/tests/fixtures/middleware-conditions/pages/test/next.js b/tests/fixtures/middleware-conditions/pages/test/next.js new file mode 100644 index 0000000000..2fe36935eb --- /dev/null +++ b/tests/fixtures/middleware-conditions/pages/test/next.js @@ -0,0 +1,16 @@ +export default function Page({ message }) { + return ( +
+

Message from middleware: {message}

+
+ ) +} + +/** @type {import('next').GetServerSideProps} */ +export const getServerSideProps = async (ctx) => { + return { + props: { + message: ctx.req.headers['x-hello-from-middleware-req'] || null, + }, + } +} diff --git a/tests/fixtures/middleware-conditions/app/test/redirect/page.js b/tests/fixtures/middleware-conditions/pages/test/redirect.js similarity index 100% rename from tests/fixtures/middleware-conditions/app/test/redirect/page.js rename to tests/fixtures/middleware-conditions/pages/test/redirect.js diff --git a/tests/fixtures/middleware-conditions/app/test/rewrite/page.js b/tests/fixtures/middleware-conditions/pages/test/rewrite.js similarity index 100% rename from tests/fixtures/middleware-conditions/app/test/rewrite/page.js rename to tests/fixtures/middleware-conditions/pages/test/rewrite.js diff --git a/tests/integration/cache-handler.test.ts b/tests/integration/cache-handler.test.ts index 7eaf6b70c5..b459d62559 100644 --- a/tests/integration/cache-handler.test.ts +++ b/tests/integration/cache-handler.test.ts @@ -19,6 +19,7 @@ import { } from '../utils/helpers.js' import { nextVersionSatisfies, + shouldHaveAppRouterGlobalErrorInPrerenderManifest, shouldHaveAppRouterNotFoundInPrerenderManifest, } from '../utils/next-version-helpers.mjs' @@ -218,6 +219,7 @@ describe('app router', () => { expect(blobEntries.map(({ key }) => decodeBlobKey(key)).sort()).toEqual( [ '/404', + shouldHaveAppRouterGlobalErrorInPrerenderManifest() ? '/_global-error' : undefined, shouldHaveAppRouterNotFoundInPrerenderManifest() ? '/_not-found' : undefined, '/index', '/posts/1', @@ -371,6 +373,7 @@ describe('plugin', () => { expect(blobEntries.map(({ key }) => decodeBlobKey(key)).sort()).toEqual( [ '/404', + shouldHaveAppRouterGlobalErrorInPrerenderManifest() ? '/_global-error' : undefined, shouldHaveAppRouterNotFoundInPrerenderManifest() ? '/_not-found' : undefined, '/api/revalidate-handler', '/api/static/first', diff --git a/tests/integration/simple-app.test.ts b/tests/integration/simple-app.test.ts index 2d2acf46bf..0afb9472b8 100644 --- a/tests/integration/simple-app.test.ts +++ b/tests/integration/simple-app.test.ts @@ -36,6 +36,7 @@ import { } from '../utils/helpers.js' import { nextVersionSatisfies, + shouldHaveAppRouterGlobalErrorInPrerenderManifest, shouldHaveAppRouterNotFoundInPrerenderManifest, } from '../utils/next-version-helpers.mjs' @@ -394,6 +395,7 @@ test.skipIf(process.env.NEXT_VERSION !== 'canary')( expect(blobEntries.map(({ key }) => decodeBlobKey(key)).sort()).toEqual( [ '/404', + shouldHaveAppRouterGlobalErrorInPrerenderManifest() ? '/_global-error' : undefined, shouldHaveAppRouterNotFoundInPrerenderManifest() ? '/_not-found' : undefined, '/index', '404.html', diff --git a/tests/utils/next-version-helpers.mjs b/tests/utils/next-version-helpers.mjs index 26a8df1b7f..58bb5ee7c4 100644 --- a/tests/utils/next-version-helpers.mjs +++ b/tests/utils/next-version-helpers.mjs @@ -38,6 +38,13 @@ export function shouldHaveAppRouterNotFoundInPrerenderManifest() { return nextVersionSatisfies(isNextCanary() ? '>=15.4.2-canary.33' : '>=15.5.0') } +export function shouldHaveAppRouterGlobalErrorInPrerenderManifest() { + // https://github.com/vercel/next.js/pull/82444 + + // this is not used in any stable version yet + return isNextCanary() && nextVersionSatisfies('>=15.5.1-canary.4') +} + /** * Check if current next version requires React 19 * @param {string} version Next version