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