Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: try to backport to next 14 #68901

Closed
wants to merge 78 commits into from

Conversation

ForsakenHarmony
Copy link
Member

@ForsakenHarmony ForsakenHarmony commented Aug 14, 2024

DO NOT SQUASH MERGE

@ijjk ijjk added created-by: Turbopack team PRs by the Turbopack team. Documentation Related to Next.js' official documentation. Font (next/font) Related to Next.js Font Optimization. tests Turbopack Related to Turbopack with Next.js. type: next labels Aug 14, 2024
Copy link
Contributor

github-actions bot commented Aug 14, 2024

Hi there 👋

It looks like this PR introduces broken links to the docs, please take a moment to fix them before merging:

Broken link Type File
/docs/app/building-your-application/optimizing/package-bundling#analyzing-javascript-bundles link /docs/02-app/01-building-your-application/06-optimizing/13-memory-usage.mdx

Thank you 🙏

This comment was marked as off-topic.

@ijjk ijjk added the examples Issue/PR related to examples label Aug 15, 2024
@ijjk ijjk added the create-next-app Related to our CLI tool for quickly starting a new Next.js application. label Aug 16, 2024
### Why?
In preparation for moving all turbopack crates

Also makes them easier to work with in general.

Closes PACK-3164
@ForsakenHarmony ForsakenHarmony force-pushed the hrmny/backport-turbopack branch 2 times, most recently from 39b4cd9 to ee62103 Compare August 16, 2024 16:35

This comment was marked as off-topic.

@ForsakenHarmony ForsakenHarmony force-pushed the hrmny/backport-turbopack branch 4 times, most recently from 61b208c to bcbba28 Compare August 20, 2024 16:12
@ijjk
Copy link
Member

ijjk commented Aug 20, 2024

Failing test suites

Commit: bcbba28

TURBOPACK=1 pnpm test test/integration/amphtml-ssg/test/index.test.js (turbopack)

  • 404 Page Support with _app > development mode > should not show pages/404 GIP error if _app has GIP
Expand output

● 404 Page Support with _app › development mode › should not show pages/404 GIP error if _app has GIP

FetchError: request to http://localhost:38075/abc failed, reason: connect ECONNREFUSED 127.0.0.1:38075

  at ClientRequest.<anonymous> (../node_modules/.pnpm/node-fetch@2.6.7/node_modules/node-fetch/lib/index.js:1491:11)

Read more about building and testing Next.js in contributing.md.

@ijjk
Copy link
Member

ijjk commented Aug 20, 2024

Failing test suites

Commit: a2d7c49

TURBOPACK=1 pnpm test test/integration/css-client-nav/test/index.test.js (turbopack)

  • CSS Module client-side navigation > production mode > should time out and hard navigate for stalled CSS request
Expand output

● CSS Module client-side navigation › production mode › should time out and hard navigate for stalled CSS request

expect(received).toBeFalsy()

Received: "hello"

  211 |           // the timeout should have been reached and we did a hard
  212 |           // navigation
> 213 |           expect(await browser.eval('window.beforeNav')).toBeFalsy()
      |                                                          ^
  214 |         } finally {
  215 |           stallCss = false
  216 |           if (browser) {

  at Object.toBeFalsy (integration/css-client-nav/test/index.test.js:213:58)

● CSS Module client-side navigation › production mode › should time out and hard navigate for stalled CSS request

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `CSS Module client-side navigation production mode should time out and hard navigate for stalled CSS request 2`

Snapshot: "rgb(0, 0, 255)"
Received: "rgb(0, 0, 0)"

  207 |             `window.getComputedStyle(document.querySelector('#verify-blue')).color`
  208 |           )
> 209 |           expect(blueColor).toMatchInlineSnapshot(`"rgb(0, 0, 255)"`)
      |                             ^
  210 |
  211 |           // the timeout should have been reached and we did a hard
  212 |           // navigation

  at Object.toMatchInlineSnapshot (integration/css-client-nav/test/index.test.js:209:29)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/dist-dir/test/index.test.js (turbopack)

  • distDir > production mode > should handle undefined distDir
Expand output

● distDir › production mode › should handle undefined distDir

expect(received).toBe(expected) // Object.is equality

Expected: 0
Received: 24

   97 |         await fs.writeFile(nextConfig, origNextConfig)
   98 |
>  99 |         expect(stderr.length).toBe(0)
      |                               ^
  100 |       })
  101 |     }
  102 |   )

  at Object.toBe (integration/dist-dir/test/index.test.js:99:31)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test-start test/e2e/app-dir/dynamic-css/index.test.ts (turbopack)

  • app dir - dynamic css > should not throw with accessing to ALS in preload css
Expand output

● app dir - dynamic css › should not throw with accessing to ALS in preload css

expect(received).not.toContain(expected) // indexOf

Expected substring: not "was called outside a request scope"
Received string:        "  ▲ Next.js 14.2.7 (turbo)

   Creating an optimized production build ...
   Building (0/6) ...
   Building (1/6) 
   Building (2/6) 
   Building (4/6) 
 ✓ Building (6/6)
   Linting and checking validity of types ...
   Collecting page data ...
 ⚠ Using edge runtime on a page currently disables static generation for that page
   Generating static pages (0/6) ...
   Generating static pages (1/6) 
   Generating static pages (2/6) 
   Generating static pages (4/6) 
 ✓ Generating static pages (6/6)
   Finalizing page optimization ...
   Collecting build traces ...

Route (app)                                Size     First Load JS
┌ ○ /                                      7.52 kB         105 kB
├ ○ /_not-found                            0 B            97.8 kB
├ ƒ /another                               2.07 kB        99.8 kB
├ ƒ /ssr                                   2.07 kB        99.8 kB
└ ƒ /ssr/edge                              7.21 kB        99.9 kB
+ First Load JS shared by all              92.6 kB
  ├ chunks/node_modules__pnpm_4651a4._.js  85.9 kB
  └ other shared chunks (total)            6.79 kB


○  (Static)   prerendered as static content
ƒ  (Dynamic)  server-rendered on demand

  ▲ Next.js 14.2.7 (turbo)
  - Local:        http://localhost:36669

 ✓ Starting...
 ✓ Ready in 282ms
 [Error: `next/dynamic css` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context] {
  digest: '1180251499'
}
"

  68 |     it('should not throw with accessing to ALS in preload css', async () => {
  69 |       const output = next.cliOutput
> 70 |       expect(output).not.toContain('was called outside a request scope')
     |                          ^
  71 |     })
  72 |   }
  73 | )

  at Object.toContain (e2e/app-dir/dynamic-css/index.test.ts:70:26)

Read more about building and testing Next.js in contributing.md.

pnpm test-dev test/development/acceptance/server-component-compiler-errors-in-pages.test.ts

  • Error Overlay for server components compiler errors in pages > importing 'next/headers' in pages
  • Error Overlay for server components compiler errors in pages > importing 'server-only' in pages
Expand output

● Error Overlay for server components compiler errors in pages › importing 'next/headers' in pages

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `Error Overlay for server components compiler errors in pages importing 'next/headers' in pages 1`

- Snapshot  - 3
+ Received  + 2

@@ -1,12 +1,11 @@
  ./components/Comp.js
- Error: 
-   x You're importing a component that needs next/headers. That only works in a Server Component which is not supported in the pages/ directory. Read more: https://nextjs.org/docs/getting-started/
+ Error:   x You're importing a component that needs next/headers. That only works in a Server Component which is not supported in the pages/ directory. Read more: https://nextjs.org/docs/getting-started/
    | react-essentials#server-components
    | 
    | 
-    ,-[TEST_DIR/components/Comp.js:1:1]
+    ,-[1:1]
   1 | import { cookies } from 'next/headers'
     : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   2 | 
   3 | export default function Page() {
   4 |   return <p>hello world</p>

  70 |     } else {
  71 |       expect(next.normalizeTestDirContent(await session.getRedboxSource()))
> 72 |         .toMatchInlineSnapshot(`
     |          ^
  73 |         "./components/Comp.js
  74 |         Error: 
  75 |           x You're importing a component that needs next/headers. That only works in a Server Component which is not supported in the pages/ directory. Read more: https://nextjs.org/docs/getting-started/

  at Object.toMatchInlineSnapshot (development/acceptance/server-component-compiler-errors-in-pages.test.ts:72:10)

● Error Overlay for server components compiler errors in pages › importing 'server-only' in pages

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `Error Overlay for server components compiler errors in pages importing 'server-only' in pages 1`

- Snapshot  - 3
+ Received  + 2

@@ -1,12 +1,11 @@
  ./components/Comp.js
- Error: 
-   x You're importing a component that needs server-only. That only works in a Server Component which is not supported in the pages/ directory. Read more: https://nextjs.org/docs/getting-started/
+ Error:   x You're importing a component that needs server-only. That only works in a Server Component which is not supported in the pages/ directory. Read more: https://nextjs.org/docs/getting-started/
    | react-essentials#server-components
    | 
    | 
-    ,-[TEST_DIR/components/Comp.js:1:1]
+    ,-[1:1]
   1 | import 'server-only'
     : ^^^^^^^^^^^^^^^^^^^^
   2 | 
   3 | export default function Page() {
   4 |   return 'hello world'

  129 |     } else {
  130 |       expect(next.normalizeTestDirContent(await session.getRedboxSource()))
> 131 |         .toMatchInlineSnapshot(`
      |          ^
  132 |         "./components/Comp.js
  133 |         Error: 
  134 |           x You're importing a component that needs server-only. That only works in a Server Component which is not supported in the pages/ directory. Read more: https://nextjs.org/docs/getting-started/

  at Object.toMatchInlineSnapshot (development/acceptance/server-component-compiler-errors-in-pages.test.ts:131:10)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/clean-distdir/test/index.test.js (turbopack)

  • Cleaning distDir > production mode > should clean up .next before build start
  • Cleaning distDir > production mode > disabled write > should not clean up .next before build start
Expand output

● Cleaning distDir › production mode › should clean up .next before build start

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  19 |   expect(fs.existsSync(customFile)).toBe(existsAfterBuild)
  20 |   // `.next/cache` should be preserved in all cases
> 21 |   expect(fs.existsSync(cacheDir)).toBe(true)
     |                                   ^
  22 |   // expect(fs.existsSync(swcCacheDir)).toBe(true)
  23 | }
  24 |

  at toBe (integration/clean-distdir/test/index.test.js:21:35)
  at Object.<anonymous> (integration/clean-distdir/test/index.test.js:27:5)

● Cleaning distDir › production mode › disabled write › should not clean up .next before build start

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  19 |   expect(fs.existsSync(customFile)).toBe(existsAfterBuild)
  20 |   // `.next/cache` should be preserved in all cases
> 21 |   expect(fs.existsSync(cacheDir)).toBe(true)
     |                                   ^
  22 |   // expect(fs.existsSync(swcCacheDir)).toBe(true)
  23 | }
  24 |

  at toBe (integration/clean-distdir/test/index.test.js:21:35)
  at Object.<anonymous> (integration/clean-distdir/test/index.test.js:54:11)

Read more about building and testing Next.js in contributing.md.

pnpm test-dev test/development/acceptance/ReactRefreshLogBox-app-doc.test.ts

  • ReactRefreshLogBox _app _document default > _app syntax error shows logbox
  • ReactRefreshLogBox _app _document default > _document syntax error shows logbox
Expand output

● ReactRefreshLogBox _app _document default › _app syntax error shows logbox

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `ReactRefreshLogBox _app _document default _app syntax error shows logbox 1`

- Snapshot  - 5
+ Received  + 3

@@ -1,18 +1,16 @@
  ./pages/_app.js
- Error: 
-   x Expression expected
+ Error:   x Expression expected
-    ,-[TEST_DIR/pages/_app.js:1:1]
+    ,-[2:1]
   1 | function MyApp({ Component, pageProps }) {
   2 |   return <<Component {...pageProps} />;
     :           ^
   3 | }
   4 | export default MyApp
     `----
-
    x Expression expected
-    ,-[TEST_DIR/pages/_app.js:1:1]
+    ,-[2:1]
   1 | function MyApp({ Component, pageProps }) {
   2 |   return <<Component {...pageProps} />;
     :            ^^^^^^^^^
   3 | }
   4 | export default MyApp

  108 |         `)
  109 |       } else {
> 110 |         expect(source).toMatchInlineSnapshot(`
      |                        ^
  111 |                   "./pages/_app.js
  112 |                   Error: 
  113 |                     x Expression expected

  at Object.toMatchInlineSnapshot (development/acceptance/ReactRefreshLogBox-app-doc.test.ts:110:24)

● ReactRefreshLogBox _app _document default › _document syntax error shows logbox

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `ReactRefreshLogBox _app _document default _document syntax error shows logbox 1`

- Snapshot  - 3
+ Received  + 2

@@ -1,9 +1,8 @@
  ./pages/_document.js
- Error: 
-   x Unexpected token `{`. Expected identifier, string literal, numeric literal or [ for the computed key
+ Error:   x Unexpected token `{`. Expected identifier, string literal, numeric literal or [ for the computed key
-    ,-[TEST_DIR/pages/_document.js:1:1]
+    ,-[3:1]
   1 | import Document, { Html, Head, Main, NextScript } from 'next/document'
   2 | 
   3 | class MyDocument extends Document {{
     :                                    ^
   4 |   static async getInitialProps(ctx) {

  199 |         `)
  200 |       } else {
> 201 |         expect(source).toMatchInlineSnapshot(`
      |                        ^
  202 |                   "./pages/_document.js
  203 |                   Error: 
  204 |                     x Unexpected token \`{\`. Expected identifier, string literal, numeric literal or [ for the computed key

  at Object.toMatchInlineSnapshot (development/acceptance/ReactRefreshLogBox-app-doc.test.ts:201:24)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/index-index/test/index.test.js (turbopack)

  • nested index.js > production mode > should follow link to /index/index
Expand output

● nested index.js › production mode › should follow link to /index/index

TIMED OUT: /^index > index > index$/

link to / | link to /index | link to /index/index | link to /index/index/index | link to /index/user | link to /index/project

undefined

  718 |
  719 |   if (hardError) {
> 720 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |           ^
  721 |   }
  722 |   return false
  723 | }

  at check (lib/next-test-utils.ts:720:11)
  at Object.<anonymous> (integration/index-index/test/index.test.js:156:7)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/custom-routes/test/index.test.js (turbopack)

  • Custom routes > production mode > should handle external beforeFiles rewrite correctly
Expand output

● Custom routes › production mode › should handle external beforeFiles rewrite correctly

TIMED OUT: /Example Domain/

<head><meta charset="utf-8"><meta name="viewport" content="width=device-width"><meta name="next-head-count" content="2"><noscript data-n-css=""></noscript><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__2e330a._.js" defer=""></script><script src="/_next/static/chunks/08b5e__pnpm_78f04f._.js" defer=""></script><script src="/_next/static/chunks/%5Bproject%5D_packages_next_dist_pages_093761._.js" defer=""></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_771ef3._.js" defer=""></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__da84e9._.js" defer=""></script><script src="/_next/static/chunks/08b5e__pnpm_7186c7._.js" defer=""></script><script src="/_next/static/chunks/%5Bproject%5D_packages_next_dist_pages_cc6845._.js" defer=""></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_62a4c3._.js" defer=""></script><script src="/_next/static/kmL9J7eAcPVJ6ikcto8kI/_ssgManifest.js" defer=""></script><script src="/_next/static/kmL9J7eAcPVJ6ikcto8kI/_buildManifest.js" defer=""></script><link as="script" rel="prefetch" href="/_next/static/chunks/pages/hello.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/hello-again.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/with-params.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/auto-export/%5Bslug%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/multi-rewrites.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/_sport/%5Bslug%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/_sport/%5Bslug%5D/test.js"></head><body><div id="__next">multi-rewrites</div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/nav","query":{},"buildId":"kmL9J7eAcPVJ6ikcto8kI","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script><next-route-announcer><p aria-live="assertive" id="__next-route-announcer__" role="alert" style="border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; top: 0px; width: 1px; white-space: nowrap; overflow-wrap: normal;">/overridden</p></next-route-announcer><script src="/_next/static/chunks/pages/with-params.js"></script><script src="/_next/static/chunks/pages/hello.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__e01047._.js"></script><script src="/_next/static/chunks/08b5e__pnpm_7fb19c._.js"></script><script src="/_next/static/chunks/%5Bproject%5D_packages_next_dist_pages_cbc131._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_06b7ca._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__0bc031._.js"></script><script src="/_next/static/chunks/%5Bproject%5D_packages_next_dist_pages_4ac974._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_78f599._.js"></script><script src="/_next/static/chunks/pages/hello-again.js"></script><script src="/_next/static/chunks/pages/auto-export/%5Bslug%5D.js"></script><script src="/_next/static/chunks/pages/multi-rewrites.js"></script><script src="/_next/static/chunks/pages/_sport/%5Bslug%5D.js"></script><script src="/_next/static/chunks/pages/_sport/%5Bslug%5D/test.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__6117ac._.js"></script><script src="/_next/static/chunks/%5Bproject%5D_packages_next_dist_pages_60036c._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_657c08._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__4e6096._.js"></script><script src="/_next/static/chunks/%5Bproject%5D_packages_next_dist_pages_1eb02d._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_441656._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__aff595._.js"></script><script src="/_next/static/chunks/%5Bproject%5D_packages_next_dist_pages_9025c9._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_ad4c3a._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__7caeda._.js"></script><script src="/_next/static/chunks/%5Bproject%5D_packages_next_dist_pages_0f388a._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_939efe._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__be7b60._.js"></script><script src="/_next/static/chunks/%5Bproject%5D_packages_next_dist_pages_9f9804._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_27a981._.js"></script></body>

undefined

  718 |
  719 |   if (hardError) {
> 720 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |           ^
  721 |   }
  722 |   return false
  723 | }

  at check (lib/next-test-utils.ts:720:11)
  at Object.<anonymous> (integration/custom-routes/test/index.test.js:198:5)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test-start test/e2e/app-dir/metadata/metadata.test.ts (turbopack)

  • app dir - metadata > icons > should support root level of favicon.ico
Expand output

● app dir - metadata › icons › should support root level of favicon.ico

expect(received).toMatch(expected)

Expected substring: "/favicon.ico"
Received string:    "/icon.svg?icon.673648ae.svg"

  695 |         let $ = await next.render$('/')
  696 |         const favIcon = $('link[rel="icon"]')
> 697 |         expect(favIcon.attr('href')).toMatch('/favicon.ico')
      |                                      ^
  698 |         expect(favIcon.attr('type')).toBe('image/x-icon')
  699 |         // Turbopack renders / emits image differently
  700 |         expect(['16x16', '48x48']).toContain(favIcon.attr('sizes'))

  at Object.toMatch (e2e/app-dir/metadata/metadata.test.ts:697:38)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test-start test/e2e/app-dir/css-order/css-order.test.ts (turbopack)

  • css-order turbo > should load correct styles navigating back again pages-first -> pages-second -> pages-first -> pages-second
  • css-order turbo > should load correct styles navigating back again pages-first -> pages-third -> pages-first -> pages-third
  • css-order turbo > should load correct styles navigating back again pages-second -> pages-first -> pages-second -> pages-first
  • css-order turbo > should load correct styles navigating back again pages-second -> pages-third -> pages-second -> pages-third
  • css-order turbo > should load correct styles navigating back again pages-third -> pages-first -> pages-third -> pages-first
  • css-order turbo > should load correct styles navigating back again pages-third -> pages-second -> pages-third -> pages-second
  • css-order turbo > should load correct styles navigating back again pages-interleaved-b -> pages-interleaved-a -> pages-interleaved-b -> pages-interleaved-a
  • css-order turbo > should load correct styles navigating back again pages-reversed-a -> pages-reversed-b -> pages-reversed-a -> pages-reversed-b
  • css-order turbo > should load correct styles navigating back again pages-reversed-b -> pages-reversed-a -> pages-reversed-b -> pages-reversed-a
  • css-order turbo > should load correct styles navigating back again pages-partial-reversed-a -> pages-partial-reversed-b -> pages-partial-reversed-a -> pages-partial-reversed-b
  • css-order turbo > should load correct styles navigating back again pages-partial-reversed-b -> pages-partial-reversed-a -> pages-partial-reversed-b -> pages-partial-reversed-a
  • css-order turbo > should load correct styles navigating pages-first -> pages-second
  • css-order turbo > should load correct styles navigating pages-first -> pages-third
  • css-order turbo > should load correct styles navigating pages-second -> pages-first
  • css-order turbo > should load correct styles navigating pages-second -> pages-third
  • css-order turbo > should load correct styles navigating pages-third -> pages-first
  • css-order turbo > should load correct styles navigating pages-third -> pages-second
  • css-order turbo > should load correct styles navigating pages-reversed-a -> pages-reversed-b
  • css-order turbo > should load correct styles navigating pages-reversed-b -> pages-reversed-a
  • css-order turbo > should load correct styles navigating pages-partial-reversed-a -> pages-partial-reversed-b
  • css-order turbo > should load correct styles navigating pages-partial-reversed-b -> pages-partial-reversed-a
  • css-order turbo > should load correct styles on pages-first
  • css-order turbo > should load correct styles on pages-second
  • css-order turbo > should load correct styles on pages-third
  • css-order turbo > should load correct styles on pages-interleaved-b
  • css-order turbo > should load correct styles on pages-reversed-a
  • css-order turbo > should load correct styles on pages-reversed-b
  • css-order turbo > should load correct styles on pages-partial-reversed-a
  • css-order turbo > should load correct styles on pages-partial-reversed-b
Expand output

● css-order turbo › should load correct styles navigating back again pages-first -> pages-second -> pages-first -> pages-second

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 0, 255)"
Received: "rgb(255, 3, 0)"

  247 |               .waitForElementByCss(pageInfo.selector)
  248 |               .getComputedCss('color')
> 249 |           ).toBe(pageInfo.color)
      |             ^
  250 |           if (pageInfo.background) {
  251 |             expect(
  252 |               await browser

  at toBe (e2e/app-dir/css-order/css-order.test.ts:249:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:261:9)

● css-order turbo › should load correct styles navigating back again pages-first -> pages-third -> pages-first -> pages-third

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 0, 255)"
Received: "rgb(255, 3, 0)"

  247 |               .waitForElementByCss(pageInfo.selector)
  248 |               .getComputedCss('color')
> 249 |           ).toBe(pageInfo.color)
      |             ^
  250 |           if (pageInfo.background) {
  251 |             expect(
  252 |               await browser

  at toBe (e2e/app-dir/css-order/css-order.test.ts:249:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:261:9)

● css-order turbo › should load correct styles navigating back again pages-second -> pages-first -> pages-second -> pages-first

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 128, 0)"
Received: "rgb(255, 1, 0)"

  247 |               .waitForElementByCss(pageInfo.selector)
  248 |               .getComputedCss('color')
> 249 |           ).toBe(pageInfo.color)
      |             ^
  250 |           if (pageInfo.background) {
  251 |             expect(
  252 |               await browser

  at toBe (e2e/app-dir/css-order/css-order.test.ts:249:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:261:9)

● css-order turbo › should load correct styles navigating back again pages-second -> pages-third -> pages-second -> pages-third

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 128, 0)"
Received: "rgb(255, 1, 0)"

  247 |               .waitForElementByCss(pageInfo.selector)
  248 |               .getComputedCss('color')
> 249 |           ).toBe(pageInfo.color)
      |             ^
  250 |           if (pageInfo.background) {
  251 |             expect(
  252 |               await browser

  at toBe (e2e/app-dir/css-order/css-order.test.ts:249:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:261:9)

● css-order turbo › should load correct styles navigating back again pages-third -> pages-first -> pages-third -> pages-first

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 128, 128)"
Received: "rgb(255, 1, 0)"

  247 |               .waitForElementByCss(pageInfo.selector)
  248 |               .getComputedCss('color')
> 249 |           ).toBe(pageInfo.color)
      |             ^
  250 |           if (pageInfo.background) {
  251 |             expect(
  252 |               await browser

  at toBe (e2e/app-dir/css-order/css-order.test.ts:249:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:261:9)

● css-order turbo › should load correct styles navigating back again pages-third -> pages-second -> pages-third -> pages-second

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 128, 128)"
Received: "rgb(255, 1, 0)"

  247 |               .waitForElementByCss(pageInfo.selector)
  248 |               .getComputedCss('color')
> 249 |           ).toBe(pageInfo.color)
      |             ^
  250 |           if (pageInfo.background) {
  251 |             expect(
  252 |               await browser

  at toBe (e2e/app-dir/css-order/css-order.test.ts:249:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:261:9)

● css-order turbo › should load correct styles navigating back again pages-interleaved-b -> pages-interleaved-a -> pages-interleaved-b -> pages-interleaved-a

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(255, 0, 255)"
Received: "rgb(0, 255, 0)"

  247 |               .waitForElementByCss(pageInfo.selector)
  248 |               .getComputedCss('color')
> 249 |           ).toBe(pageInfo.color)
      |             ^
  250 |           if (pageInfo.background) {
  251 |             expect(
  252 |               await browser

  at toBe (e2e/app-dir/css-order/css-order.test.ts:249:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:261:9)

● css-order turbo › should load correct styles navigating back again pages-reversed-a -> pages-reversed-b -> pages-reversed-a -> pages-reversed-b

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 166, 255)"
Received: "rgb(0, 89, 255)"

  247 |               .waitForElementByCss(pageInfo.selector)
  248 |               .getComputedCss('color')
> 249 |           ).toBe(pageInfo.color)
      |             ^
  250 |           if (pageInfo.background) {
  251 |             expect(
  252 |               await browser

  at toBe (e2e/app-dir/css-order/css-order.test.ts:249:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:261:9)

● css-order turbo › should load correct styles navigating back again pages-reversed-b -> pages-reversed-a -> pages-reversed-b -> pages-reversed-a

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 89, 255)"
Received: "rgb(0, 166, 255)"

  247 |               .waitForElementByCss(pageInfo.selector)
  248 |               .getComputedCss('color')
> 249 |           ).toBe(pageInfo.color)
      |             ^
  250 |           if (pageInfo.background) {
  251 |             expect(
  252 |               await browser

  at toBe (e2e/app-dir/css-order/css-order.test.ts:249:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:261:9)

● css-order turbo › should load correct styles navigating back again pages-partial-reversed-a -> pages-partial-reversed-b -> pages-partial-reversed-a -> pages-partial-reversed-b

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(255, 166, 255)"
Received: "rgb(255, 55, 255)"

  247 |               .waitForElementByCss(pageInfo.selector)
  248 |               .getComputedCss('color')
> 249 |           ).toBe(pageInfo.color)
      |             ^
  250 |           if (pageInfo.background) {
  251 |             expect(
  252 |               await browser

  at toBe (e2e/app-dir/css-order/css-order.test.ts:249:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:261:9)

● css-order turbo › should load correct styles navigating back again pages-partial-reversed-b -> pages-partial-reversed-a -> pages-partial-reversed-b -> pages-partial-reversed-a

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(255, 55, 255)"
Received: "rgb(255, 166, 255)"

  247 |               .waitForElementByCss(pageInfo.selector)
  248 |               .getComputedCss('color')
> 249 |           ).toBe(pageInfo.color)
      |             ^
  250 |           if (pageInfo.background) {
  251 |             expect(
  252 |               await browser

  at toBe (e2e/app-dir/css-order/css-order.test.ts:249:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:261:9)

● css-order turbo › should load correct styles navigating pages-first -> pages-second

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 0, 255)"
Received: "rgb(255, 3, 0)"

  312 |               .waitForElementByCss(pageInfo.selector)
  313 |               .getComputedCss('color')
> 314 |           ).toBe(pageInfo.color)
      |             ^
  315 |         }
  316 |         const navigate = async (page) => {
  317 |           await browser.waitForElementByCss('#' + page).click()

  at toBe (e2e/app-dir/css-order/css-order.test.ts:314:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:319:9)

● css-order turbo › should load correct styles navigating pages-first -> pages-third

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 0, 255)"
Received: "rgb(255, 3, 0)"

  312 |               .waitForElementByCss(pageInfo.selector)
  313 |               .getComputedCss('color')
> 314 |           ).toBe(pageInfo.color)
      |             ^
  315 |         }
  316 |         const navigate = async (page) => {
  317 |           await browser.waitForElementByCss('#' + page).click()

  at toBe (e2e/app-dir/css-order/css-order.test.ts:314:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:319:9)

● css-order turbo › should load correct styles navigating pages-second -> pages-first

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 128, 0)"
Received: "rgb(255, 1, 0)"

  312 |               .waitForElementByCss(pageInfo.selector)
  313 |               .getComputedCss('color')
> 314 |           ).toBe(pageInfo.color)
      |             ^
  315 |         }
  316 |         const navigate = async (page) => {
  317 |           await browser.waitForElementByCss('#' + page).click()

  at toBe (e2e/app-dir/css-order/css-order.test.ts:314:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:319:9)

● css-order turbo › should load correct styles navigating pages-second -> pages-third

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 128, 0)"
Received: "rgb(255, 3, 0)"

  312 |               .waitForElementByCss(pageInfo.selector)
  313 |               .getComputedCss('color')
> 314 |           ).toBe(pageInfo.color)
      |             ^
  315 |         }
  316 |         const navigate = async (page) => {
  317 |           await browser.waitForElementByCss('#' + page).click()

  at toBe (e2e/app-dir/css-order/css-order.test.ts:314:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:319:9)

● css-order turbo › should load correct styles navigating pages-third -> pages-first

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 128, 128)"
Received: "rgb(255, 1, 0)"

  312 |               .waitForElementByCss(pageInfo.selector)
  313 |               .getComputedCss('color')
> 314 |           ).toBe(pageInfo.color)
      |             ^
  315 |         }
  316 |         const navigate = async (page) => {
  317 |           await browser.waitForElementByCss('#' + page).click()

  at toBe (e2e/app-dir/css-order/css-order.test.ts:314:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:319:9)

● css-order turbo › should load correct styles navigating pages-third -> pages-second

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 128, 128)"
Received: "rgb(255, 1, 0)"

  312 |               .waitForElementByCss(pageInfo.selector)
  313 |               .getComputedCss('color')
> 314 |           ).toBe(pageInfo.color)
      |             ^
  315 |         }
  316 |         const navigate = async (page) => {
  317 |           await browser.waitForElementByCss('#' + page).click()

  at toBe (e2e/app-dir/css-order/css-order.test.ts:314:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:319:9)

● css-order turbo › should load correct styles navigating pages-reversed-a -> pages-reversed-b

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 166, 255)"
Received: "rgb(0, 89, 255)"

  312 |               .waitForElementByCss(pageInfo.selector)
  313 |               .getComputedCss('color')
> 314 |           ).toBe(pageInfo.color)
      |             ^
  315 |         }
  316 |         const navigate = async (page) => {
  317 |           await browser.waitForElementByCss('#' + page).click()

  at toBe (e2e/app-dir/css-order/css-order.test.ts:314:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:319:9)

● css-order turbo › should load correct styles navigating pages-reversed-b -> pages-reversed-a

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 89, 255)"
Received: "rgb(0, 166, 255)"

  312 |               .waitForElementByCss(pageInfo.selector)
  313 |               .getComputedCss('color')
> 314 |           ).toBe(pageInfo.color)
      |             ^
  315 |         }
  316 |         const navigate = async (page) => {
  317 |           await browser.waitForElementByCss('#' + page).click()

  at toBe (e2e/app-dir/css-order/css-order.test.ts:314:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:319:9)

● css-order turbo › should load correct styles navigating pages-partial-reversed-a -> pages-partial-reversed-b

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(255, 166, 255)"
Received: "rgb(255, 55, 255)"

  312 |               .waitForElementByCss(pageInfo.selector)
  313 |               .getComputedCss('color')
> 314 |           ).toBe(pageInfo.color)
      |             ^
  315 |         }
  316 |         const navigate = async (page) => {
  317 |           await browser.waitForElementByCss('#' + page).click()

  at toBe (e2e/app-dir/css-order/css-order.test.ts:314:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:319:9)

● css-order turbo › should load correct styles navigating pages-partial-reversed-b -> pages-partial-reversed-a

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(255, 55, 255)"
Received: "rgb(255, 166, 255)"

  312 |               .waitForElementByCss(pageInfo.selector)
  313 |               .getComputedCss('color')
> 314 |           ).toBe(pageInfo.color)
      |             ^
  315 |         }
  316 |         const navigate = async (page) => {
  317 |           await browser.waitForElementByCss('#' + page).click()

  at toBe (e2e/app-dir/css-order/css-order.test.ts:314:13)
  at Object.<anonymous> (e2e/app-dir/css-order/css-order.test.ts:319:9)

● css-order turbo › should load correct styles on pages-first

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 0, 255)"
Received: "rgb(255, 3, 0)"

  343 |             .waitForElementByCss(pageInfo.selector)
  344 |             .getComputedCss('color')
> 345 |         ).toBe(pageInfo.color)
      |           ^
  346 |         await browser.close()
  347 |       })
  348 |     }

  at Object.toBe (e2e/app-dir/css-order/css-order.test.ts:345:11)

● css-order turbo › should load correct styles on pages-second

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 128, 0)"
Received: "rgb(255, 1, 0)"

  343 |             .waitForElementByCss(pageInfo.selector)
  344 |             .getComputedCss('color')
> 345 |         ).toBe(pageInfo.color)
      |           ^
  346 |         await browser.close()
  347 |       })
  348 |     }

  at Object.toBe (e2e/app-dir/css-order/css-order.test.ts:345:11)

● css-order turbo › should load correct styles on pages-third

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 128, 128)"
Received: "rgb(255, 1, 0)"

  343 |             .waitForElementByCss(pageInfo.selector)
  344 |             .getComputedCss('color')
> 345 |         ).toBe(pageInfo.color)
      |           ^
  346 |         await browser.close()
  347 |       })
  348 |     }

  at Object.toBe (e2e/app-dir/css-order/css-order.test.ts:345:11)

● css-order turbo › should load correct styles on pages-interleaved-b

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(255, 0, 255)"
Received: "rgb(0, 255, 0)"

  343 |             .waitForElementByCss(pageInfo.selector)
  344 |             .getComputedCss('color')
> 345 |         ).toBe(pageInfo.color)
      |           ^
  346 |         await browser.close()
  347 |       })
  348 |     }

  at Object.toBe (e2e/app-dir/css-order/css-order.test.ts:345:11)

● css-order turbo › should load correct styles on pages-reversed-a

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 166, 255)"
Received: "rgb(0, 89, 255)"

  343 |             .waitForElementByCss(pageInfo.selector)
  344 |             .getComputedCss('color')
> 345 |         ).toBe(pageInfo.color)
      |           ^
  346 |         await browser.close()
  347 |       })
  348 |     }

  at Object.toBe (e2e/app-dir/css-order/css-order.test.ts:345:11)

● css-order turbo › should load correct styles on pages-reversed-b

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(0, 89, 255)"
Received: "rgb(0, 166, 255)"

  343 |             .waitForElementByCss(pageInfo.selector)
  344 |             .getComputedCss('color')
> 345 |         ).toBe(pageInfo.color)
      |           ^
  346 |         await browser.close()
  347 |       })
  348 |     }

  at Object.toBe (e2e/app-dir/css-order/css-order.test.ts:345:11)

● css-order turbo › should load correct styles on pages-partial-reversed-a

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(255, 166, 255)"
Received: "rgb(255, 55, 255)"

  343 |             .waitForElementByCss(pageInfo.selector)
  344 |             .getComputedCss('color')
> 345 |         ).toBe(pageInfo.color)
      |           ^
  346 |         await browser.close()
  347 |       })
  348 |     }

  at Object.toBe (e2e/app-dir/css-order/css-order.test.ts:345:11)

● css-order turbo › should load correct styles on pages-partial-reversed-b

expect(received).toBe(expected) // Object.is equality

Expected: "rgb(255, 55, 255)"
Received: "rgb(255, 166, 255)"

  343 |             .waitForElementByCss(pageInfo.selector)
  344 |             .getComputedCss('color')
> 345 |         ).toBe(pageInfo.color)
      |           ^
  346 |         await browser.close()
  347 |       })
  348 |     }

  at Object.toBe (e2e/app-dir/css-order/css-order.test.ts:345:11)

Read more about building and testing Next.js in contributing.md.

pnpm test test/integration/telemetry/test/config.test.js

  • config telemetry > production mode > emits telemetry for lint during build
Expand output

● config telemetry › production mode › emits telemetry for lint during build

TypeError: Cannot read properties of null (reading 'pop')

  171 |         try {
  172 |           const event1 = /NEXT_LINT_CHECK_COMPLETED[\s\S]+?{([\s\S}]+?)^}/m
> 173 |             .exec(stderr)
      |                   ^
  174 |             .pop()
  175 |
  176 |           expect(event1).toMatch(/"durationInSeconds": [\d]{1,}/)

  at Object.stderr (integration/telemetry/test/config.test.js:173:19)

Read more about building and testing Next.js in contributing.md.

pnpm test-dev test/development/acceptance/ReactRefreshLogBox.test.ts

  • ReactRefreshLogBox default > unterminated JSX
Expand output

● ReactRefreshLogBox default › unterminated JSX

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `ReactRefreshLogBox default unterminated JSX 1`

- Snapshot  - 5
+ Received  + 3

@@ -1,18 +1,16 @@
  ./index.js
- Error: 
-   x Unexpected token. Did you mean `{'}'}` or `&rbrace;`?
+ Error:   x Unexpected token. Did you mean `{'}'}` or `&rbrace;`?
-    ,-[TEST_DIR/index.js:4:1]
+    ,-[7:1]
   4 |       <p>lol</p>
   5 |     div
   6 |   )
   7 | }
     : ^
     `----
-
    x Unexpected eof
-    ,-[TEST_DIR/index.js:4:1]
+    ,-[7:1]
   4 |       <p>lol</p>
   5 |     div
   6 |   )
   7 | }
     `----

  222 |       `)
  223 |     } else {
> 224 |       expect(source).toMatchInlineSnapshot(`
      |                      ^
  225 |         "./index.js
  226 |         Error: 
  227 |           x Unexpected token. Did you mean \`{'}'}\` or \`&rbrace;\`?

  at Object.toMatchInlineSnapshot (development/acceptance/ReactRefreshLogBox.test.ts:224:22)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test-start test/e2e/middleware-trailing-slash/test/index.test.ts (turbopack)

  • Middleware Runtime trailing slash > should have correct dynamic route params for middleware rewrite to dynamic route
  • Middleware Runtime trailing slash > should have correct route params for chained rewrite from middleware to config rewrite
  • Middleware Runtime trailing slash > should have correct route params for rewrite from config non-dynamic route
  • Middleware Runtime trailing slash > should redirect the same for direct visit and client-transition
Expand output

● Middleware Runtime trailing slash › should have correct dynamic route params for middleware rewrite to dynamic route

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  236 |     })
  237 |
> 238 |     it('should have correct dynamic route params for middleware rewrite to dynamic route', async () => {
      |     ^
  239 |       const browser = await webdriver(next.url, '/404')
  240 |       await check(
  241 |         () => browser.eval('next.router.isReady ? "yes" : "no"'),

  at it (e2e/middleware-trailing-slash/test/index.test.ts:238:5)
  at runTests (e2e/middleware-trailing-slash/test/index.test.ts:493:3)
  at Object.describe (e2e/middleware-trailing-slash/test/index.test.ts:10:1)

● Middleware Runtime trailing slash › should have correct route params for chained rewrite from middleware to config rewrite

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  263 |     })
  264 |
> 265 |     it('should have correct route params for chained rewrite from middleware to config rewrite', async () => {
      |     ^
  266 |       const browser = await webdriver(next.url, '/404')
  267 |       await check(
  268 |         () => browser.eval('next.router.isReady ? "yes" : "no"'),

  at it (e2e/middleware-trailing-slash/test/index.test.ts:265:5)
  at runTests (e2e/middleware-trailing-slash/test/index.test.ts:493:3)
  at Object.describe (e2e/middleware-trailing-slash/test/index.test.ts:10:1)

● Middleware Runtime trailing slash › should have correct route params for rewrite from config non-dynamic route

TIMED OUT: /Hello World/

<head><meta charset="utf-8"><meta name="viewport" content="width=device-width"><title></title><meta name="next-head-count" content="3"><noscript data-n-css=""></noscript><script src="/_next/static/chunks/node_modules__pnpm_f1ae44._.js" defer=""></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__9fca2f._.js" defer=""></script><script src="/_next/static/chunks/ee035_next_dist_pages_91b00c._.js" defer=""></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_f1578d._.js" defer=""></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__63c043._.js" defer=""></script><script src="/_next/static/chunks/ee035_next_dist_pages_5cfc10._.js" defer=""></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_c46fac._.js" defer=""></script><script src="/_next/static/XmxcCIS1dHoRAMc-9YJtU/_ssgManifest.js" defer=""></script><script src="/_next/static/XmxcCIS1dHoRAMc-9YJtU/_buildManifest.js" defer=""></script></head><body><div id="__next"><h1>Bye Cruel World</h1></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"XmxcCIS1dHoRAMc-9YJtU","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script><next-route-announcer><p aria-live="assertive" id="__next-route-announcer__" role="alert" style="border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; top: 0px; width: 1px; white-space: nowrap; overflow-wrap: normal;">Bye Cruel World</p></next-route-announcer><script src="/_next/static/chunks/pages/ssr-page.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__ab8798._.js"></script><script src="/_next/static/chunks/ee035_next_dist_pages_d730a3._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_03a546._.js"></script></body>

undefined

  718 |
  719 |   if (hardError) {
> 720 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |           ^
  721 |   }
  722 |   return false
  723 | }

  at check (lib/next-test-utils.ts:720:11)
  at Object.<anonymous> (e2e/middleware-trailing-slash/test/index.test.ts:325:7)

● Middleware Runtime trailing slash › should redirect the same for direct visit and client-transition

TIMED OUT: success

/redirect-1/

undefined

  718 |
  719 |   if (hardError) {
> 720 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |           ^
  721 |   }
  722 |   return false
  723 | }

  at check (lib/next-test-utils.ts:720:11)
  at Object.<anonymous> (e2e/middleware-trailing-slash/test/index.test.ts:346:7)

Read more about building and testing Next.js in contributing.md.

pnpm test-dev test/development/acceptance-app/rsc-build-errors.test.ts

  • Error overlay - RSC build errors > should error when createContext from react is used in server component
  • Error overlay - RSC build errors > should error when createFactory from react is used in server component
  • Error overlay - RSC build errors > should error when PureComponent from react is used in server component
  • Error overlay - RSC build errors > should error when useDeferredValue from react is used in server component
  • Error overlay - RSC build errors > should error when useEffect from react is used in server component
  • Error overlay - RSC build errors > should error when useImperativeHandle from react is used in server component
  • Error overlay - RSC build errors > should error when useInsertionEffect from react is used in server component
  • Error overlay - RSC build errors > should error when useLayoutEffect from react is used in server component
  • Error overlay - RSC build errors > should error when useReducer from react is used in server component
  • Error overlay - RSC build errors > should error when useRef from react is used in server component
  • Error overlay - RSC build errors > should error when useState from react is used in server component
  • Error overlay - RSC build errors > should error when useSyncExternalStore from react is used in server component
  • Error overlay - RSC build errors > should error when useTransition from react is used in server component
  • Error overlay - RSC build errors > should error when useOptimistic from react is used in server component
  • Error overlay - RSC build errors > should error when findDOMNode from react-dom is used in server component
  • Error overlay - RSC build errors > should error when flushSync from react-dom is used in server component
  • Error overlay - RSC build errors > should error when unstable_batchedUpdates from react-dom is used in server component
  • Error overlay - RSC build errors > should error when useFormStatus from react-dom is used in server component
  • Error overlay - RSC build errors > should error when useFormState from react-dom is used in server component
  • Error overlay - RSC build errors > should throw an error when error file is a server component
Expand output

● Error overlay - RSC build errors › should error when createContext from react is used in server component

expect(received).toInclude(expected)

Expected string to include:
  "You're importing a component that needs createContext. It only works in a Client Component but none of its parents are marked with \"use client\", so they're Server Components by default."
Received:
  "./app/server-with-errors/react-apis/createcontext/page.js
Error:   x You're importing a component that needs createContext. It only works in a Client Component but none of its parents are marked with \"use client\"
  |·
  |·
   ,-[1:1]
 1 | import { createContext } from 'react'
   :          ^^^^^^^^^^^^^
 2 |·
 3 | console.log({ createContext })
   `----"

  273 |
  274 |       expect(await session.hasRedbox()).toBe(true)
> 275 |       expect(await session.getRedboxSource()).toInclude(
      |                                               ^
  276 |         // `Component` has a custom error message
  277 |         api === 'Component'
  278 |           ? `You’re importing a class component. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components by default.`

  at Object.toInclude (development/acceptance-app/rsc-build-errors.test.ts:275:47)

● Error overlay - RSC build errors › should error when createFactory from react is used in server component

expect(received).toInclude(expected)

Expected string to include:
  "You're importing a component that needs createFactory. It only works in a Client Component but none of its parents are marked with \"use client\", so they're Server Components by default."
Received:
  "./app/server-with-errors/react-apis/createfactory/page.js
Error:   x You're importing a component that needs createFactory. It only works in a Client Component but none of its parents are marked with \"use client\"
  |·
  |·
   ,-[1:1]
 1 | import { createFactory } from 'react'
   :          ^^^^^^^^^^^^^
 2 |·
 3 | console.log({ createFactory })
   `----"

  273 |
  274 |       expect(await session.hasRedbox()).toBe(true)
> 275 |       expect(await session.getRedboxSource()).toInclude(
      |                                               ^
  276 |         // `Component` has a custom error message
  277 |         api === 'Component'
  278 |           ? `You’re importing a class component. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components by default.`

  at Object.toInclude (development/acceptance-app/rsc-build-errors.test.ts:275:47)

● Error overlay - RSC build errors › should error when PureComponent from react is used in server component

expect(received).toInclude(expected)

Expected string to include:
  "You're importing a component that needs PureComponent. It only works in a Client Component but none of its parents are marked with \"use client\", so they're Server Components by default."
Received:
  "./app/server-with-errors/react-apis/purecomponent/page.js
Error:   x You're importing a component that needs PureComponent. It only works in a Client Component but none of its parents are marked with \"use client\"
  |·
  |·
   ,-[1:1]
 1 | import { PureComponent } from 'react'
   :          ^^^^^^^^^^^^^
 2 |·
 3 | console.log({ PureComponent })
   `----"

  273 |
  274 |       expect(await session.hasRedbox()).toBe(true)
> 275 |       expect(await session.getRedboxSource()).toInclude(
      |                                               ^
  276 |         // `Component` has a custom error message
  277 |         api === 'Component'
  278 |           ? `You’re importing a class component. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components by default.`

  at Object.toInclude (development/acceptance-app/rsc-build-errors.test.ts:275:47)

● Error overlay - RSC build errors › should error when useDeferredValue from react is used in server component

expect(received).toInclude(expected)

Expected string to include:
  "You're importing a component that needs useDeferredValue. It only works in a Client Component but none of its parents are marked with \"use client\", so they're Server Components by default."
Received:
  "./app/server-with-errors/react-apis/usedeferredvalue/page.js
Error:   x You're importing a component that needs useDeferredValue. It only works in a Client Component but none of its parents are marked with \"use client\"
  |·
  |·
   ,-[1:1]
 1 | import { useDeferredValue } from 'react'
   :          ^^^^^^^^^^^^^^^^
 2 |·
 3 | console.log({ useDeferredValue })
   `----"

  273 |
  274 |       expect(await session.hasRedbox()).toBe(true)
> 275 |       expect(await session.getRedboxSource()).toInclude(
      |                                               ^
  276 |         // `Component` has a custom error message
  277 |         api === 'Component'
  278 |           ? `You’re importing a class component. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components by default.`

  at Object.toInclude (development/acceptance-app/rsc-build-errors.test.ts:275:47)

● Error overlay - RSC build errors › should error when useEffect from react is used in server component

expect(received).toInclude(expected)

Expected string to include:
  "You're importing a component that needs useEffect. It only works in a Client Component but none of its parents are marked with \"use client\", so they're Server Components by default."
Received:
  "./app/server-with-errors/react-apis/useeffect/page.js
Error:   x You're importing a component that needs useEffect. It only works in a Client Component but none of its parents are marked with \"use client\"
  |·
  |·
   ,-[1:1]
 1 | import { useEffect } from 'react'
   :          ^^^^^^^^^
 2 |·
 3 | console.log({ useEffect })
   `----"

  273 |
  274 |       expect(await session.hasRedbox()).toBe(true)
> 275 |       expect(await session.getRedboxSource()).toInclude(
      |                                               ^
  276 |         // `Component` has a custom error message
  277 |         api === 'Component'
  278 |           ? `You’re importing a class component. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components by default.`

  at Object.toInclude (development/acceptance-app/rsc-build-errors.test.ts:275:47)

● Error overlay - RSC build errors › should error when useImperativeHandle from react is used in server component

expect(received).toInclude(expected)

Expected string to include:
  "You're importing a component that needs useImperativeHandle. It only works in a Client Component but none of its parents are marked with \"use client\", so they're Server Components by default."
Received:
  "./app/server-with-errors/react-apis/useimperativehandle/page.js
Error:   x You're importing a component that needs useImperativeHandle. It only works in a Client Component but none of its parents are marked with \"use client\"
  |·
  |·
   ,-[1:1]
 1 | import { useImperativeHandle } from 'react'
   :          ^^^^^^^^^^^^^^^^^^^
 2 |·
 3 | console.log({ useImperativeHandle })
   `----"

  273 |
  274 |       expect(await session.hasRedbox()).toBe(true)
> 275 |       expect(await session.getRedboxSource()).toInclude(
      |                                               ^
  276 |         // `Component` has a custom error message
  277 |         api === 'Component'
  278 |           ? `You’re importing a class component. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components by default.`

  at Object.toInclude (development/acceptance-app/rsc-build-errors.test.ts:275:47)

● Error overlay - RSC build errors › should error when useInsertionEffect from react is used in server component

expect(received).toInclude(expected)

Expected string to include:
  "You're importing a component that needs useInsertionEffect. It only works in a Client Component but none of its parents are marked with \"use client\", so they're Server Components by default."
Received:
  "./app/server-with-errors/react-apis/useinsertioneffect/page.js
Error:   x You're importing a component that needs useInsertionEffect. It only works in a Client Component but none of its parents are marked with \"use client\"
  |·
  |·
   ,-[1:1]
 1 | import { useInsertionEffect } from 'react'
   :          ^^^^^^^^^^^^^^^^^^
 2 |·
 3 | console.log({ useInsertionEffect })
   `----"

  273 |
  274 |       expect(await session.hasRedbox()).toBe(true)
> 275 |       expect(await session.getRedboxSource()).toInclude(
      |                                               ^
  276 |         // `Component` has a custom error message
  277 |         api === 'Component'
  278 |           ? `You’re importing a class component. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components by default.`

  at Object.toInclude (development/acceptance-app/rsc-build-errors.test.ts:275:47)

● Error overlay - RSC build errors › should error when useLayoutEffect from react is used in server component

expect(received).toInclude(expected)

Expected string to include:
  "You're importing a component that needs useLayoutEffect. It only works in a Client Component but none of its parents are marked with \"use client\", so they're Server Components by default."
Received:
  "./app/server-with-errors/react-apis/uselayouteffect/page.js
Error:   x You're importing a component that needs useLayoutEffect. It only works in a Client Component but none of its parents are marked with \"use client\"
  |·
  |·
   ,-[1:1]
 1 | import { useLayoutEffect } from 'react'
   :          ^^^^^^^^^^^^^^^
 2 |·
 3 | console.log({ useLayoutEffect })
   `----"

  273 |
  274 |       expect(await session.hasRedbox()).toBe(true)
> 275 |       expect(await session.getRedboxSource()).toInclude(
      |                                               ^
  276 |         // `Component` has a custom error message
  277 |         api === 'Component'
  278 |           ? `You’re importing a class component. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components by default.`

  at Object.toInclude (development/acceptance-app/rsc-build-errors.test.ts:275:47)

● Error overlay - RSC build errors › should error when useReducer from react is used in server component

expect(received).toInclude(expected)

Expected string to include:
  "You're importing a component that needs useReducer. It only works in a Client Component but none of its parents are marked with \"use client\", so they're Server Components by default."
Received:
  "./app/server-with-errors/react-apis/usereducer/page.js
Error:   x You're importing a component that needs useReducer. It only works in a Client Component but none of its parents are marked with \"use client\"
  |·
  |·
   ,-[1:1]
 1 | import { useReducer } from 'react'
   :          ^^^^^^^^^^
 2 |·
 3 | console.log({ useReducer })
   `----"

  273 |
  274 |       expect(await session.hasRedbox()).toBe(true)
> 275 |       expect(await session.getRedboxSource()).toInclude(
      |                                               ^
  276 |         // `Component` has a custom error message
  277 |         api === 'Component'
  278 |           ? `You’re importing a class component. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components by default.`

  at Object.toInclude (development/acceptance-app/rsc-build-errors.test.ts:275:47)

● Error overlay - RSC build errors › should error when useRef from react is used in server component

expect(received).toInclude(expected)

Expected string to include:
  "You're importing a component that needs useRef. It only works in a Client Component but none of its parents are marked with \"use client\", so they're Server Components by default."
Received:
  "./app/server-with-errors/react-apis/useref/page.js
Error:   x You're importing a component that needs useRef. It only works in a Client Component but none of its parents are marked with \"use client\"
  |·
  |·
   ,-[1:1]
 1 | import { useRef } from 'react'
   :          ^^^^^^
 2 |·
 3 | console.log({ useRef })
   `----"

  273 |
  274 |       expect(await session.hasRedbox()).toBe(true)
> 275 |       expect(await session.getRedboxSource()).toInclude(
      |                                               ^
  276 |         // `Component` has a custom error message
  277 |         api === 'Component'
  278 |           ? `You’re importing a class component. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components by default.`

  at Object.toInclude (development/acceptance-app/rsc-build-errors.test.ts:275:47)

● Error overlay - RSC build errors › should error when useState from react is used in server component

expect(received).toInclude(expected)

Expected string to include:
  "You're importing a component that needs useState. It only works in a Client Component but none of its parents are marked with \"use client\", so they're Server Components by default."
Received:
  "./app/server-with-errors/react-apis/usestate/page.js
Error:   x You're importing a component that needs useState. It only works in a Client Component but none of its parents are marked with \"use client\"
  |·
  |·
   ,-[1:1]
 1 | import { useState } from 'react'
   :          ^^^^^^^^
 2 |·
 3 | console.log({ useState })
   `----"

  273 |
  274 |       expect(await session.hasRedbox()).toBe(true)
> 275 |       expect(await session.getRedboxSource()).toInclude(
      |                                               ^
  276 |         // `Component` has a custom error message
  277 |         api === 'Component'
  278 |           ? `You’re importing a class component. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components by default.`

  at Object.toInclude (development/acceptance-app/rsc-build-errors.test.ts:275:47)

● Error overlay - RSC build errors › should error when useSyncExternalStore from react is used in server component

expect(received).toInclude(expected)

Expected string to include:
  "You're importing a component that needs useSyncExternalStore. It only works in a Client Component but none of its parents are marked with \"use client\", so they're Server Components by default."
Received:
  "./app/server-with-errors/react-apis/usesyncexternalstore/page.js
Error:   x You're importing a component that needs useSyncExternalStore. It only works in a Client Component but none of its parents are marked with \"use client\"
  |·
  |·
   ,-[1:1]
 1 | import { useSyncExternalStore } from 'react'
   :          ^^^^^^^^^^^^^^^^^^^^
 2 |·
 3 | console.log({ useSyncExternalStore })
   `----"

  273 |
  274 |       expect(await session.hasRedbox()).toBe(true)
> 275 |       expect(await session.getRedboxSource()).toInclude(
      |                                               ^
  276 |         // `Component` has a custom error message
  277 |         api === 'Component'
  278 |           ? `You’re importing a class component. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components by default.`

  at Object.toInclude (development/acceptance-app/rsc-build-errors.test.ts:275:47)

● Error overlay - RSC build errors › should error when useTransition from react is used in server component

expect(received).toInclude(expected)

Expected string to include:
  "You're importing a component that needs useTransition. It only works in a Client Component but none of its parents are marked with \"use client\", so they're Server Components by default."
Received:
  "./app/server-with-errors/react-apis/usetransition/page.js
Error:   x You're importing a component that needs useTransition. It only works in a Client Component but none of its parents are marked with \"use client\"
  |·
  |·
   ,-[1:1]
 1 | import { useTransition } from 'react'
   :          ^^^^^^^^^^^^^
 2 |·
 3 | console.log({ useTransition })
   `----"

  273 |
  274 |       expect(await session.hasRedbox()).toBe(true)
> 275 |       expect(await session.getRedboxSource()).toInclude(
      |                                               ^
  276 |         // `Component` has a custom error message
  277 |         api === 'Component'
  278 |           ? `You’re importing a class component. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components by default.`

  at Object.toInclude (development/acceptance-app/rsc-build-errors.test.ts:275:47)

● Error overlay - RSC build errors › should error when useOptimistic from react is used in server component

expect(received).toInclude(expected)

Expected string to include:
  "You're importing a component that needs useOptimistic. It only works in a Client Component but none of its parents are marked with \"use client\", so they're Server Components by default."
Received:
  "./app/server-with-errors/react-apis/useoptimistic/page.js
Error:   x You're importing a component that needs useOptimistic. It only works in a Client Component but none of its parents are marked with \"use client\"
  |·
  |·
   ,-[1:1]
 1 | import { useOptimistic } from 'react'
   :          ^^^^^^^^^^^^^
 2 |·
 3 | console.log({ useOptimistic })
   `----"

  273 |
  274 |       expect(await session.hasRedbox()).toBe(true)
> 275 |       expect(await session.getRedboxSource()).toInclude(
      |                                               ^
  276 |         // `Component` has a custom error message
  277 |         api === 'Component'
  278 |           ? `You’re importing a class component. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components by default.`

  at Object.toInclude (development/acceptance-app/rsc-build-errors.test.ts:275:47)

● Error overlay - RSC build errors › should error when findDOMNode from react-dom is used in server component

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  299 |       )
  300 |
> 301 |       expect(await session.hasRedbox()).toBe(true)
      |                                         ^
  302 |       expect(await session.getRedboxSource()).toInclude(
  303 |         `You're importing a component that needs ${api}. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components`
  304 |       )

  at Object.toBe (development/acceptance-app/rsc-build-errors.test.ts:301:41)

● Error overlay - RSC build errors › should error when flushSync from react-dom is used in server component

expect(received).toInclude(expected)

Expected string to include:
  "You're importing a component that needs flushSync. It only works in a Client Component but none of its parents are marked with \"use client\", so they're Server Components"
Received:
  "./app/server-with-errors/react-dom-apis/flushsync/page.js
Error:   x You're importing a component that needs flushSync. It only works in a Client Component but none of its parents are marked with \"use client\"
  |·
  |·
   ,-[1:1]
 1 | import { flushSync } from 'react-dom'
   :          ^^^^^^^^^
 2 |·
 3 | console.log({ flushSync })
   `----"

  300 |
  301 |       expect(await session.hasRedbox()).toBe(true)
> 302 |       expect(await session.getRedboxSource()).toInclude(
      |                                               ^
  303 |         `You're importing a component that needs ${api}. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components`
  304 |       )
  305 |

  at Object.toInclude (development/acceptance-app/rsc-build-errors.test.ts:302:47)

● Error overlay - RSC build errors › should error when unstable_batchedUpdates from react-dom is used in server component

expect(received).toInclude(expected)

Expected string to include:
  "You're importing a component that needs unstable_batchedUpdates. It only works in a Client Component but none of its parents are marked with \"use client\", so they're Server Components"
Received:
  "./app/server-with-errors/react-dom-apis/unstable_batchedupdates/page.js
Error:   x You're importing a component that needs unstable_batchedUpdates. It only works in a Client Component but none of its parents are marked with \"use client\"
  |·
  |·
   ,-[1:1]
 1 | import { unstable_batchedUpdates } from 'react-dom'
   :          ^^^^^^^^^^^^^^^^^^^^^^^
 2 |·
 3 | console.log({ unstable_batchedUpdates })
   `----"

  300 |
  301 |       expect(await session.hasRedbox()).toBe(true)
> 302 |       expect(await session.getRedboxSource()).toInclude(
      |                                               ^
  303 |         `You're importing a component that needs ${api}. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components`
  304 |       )
  305 |

  at Object.toInclude (development/acceptance-app/rsc-build-errors.test.ts:302:47)

● Error overlay - RSC build errors › should error when useFormStatus from react-dom is used in server component

expect(received).toInclude(expected)

Expected string to include:
  "You're importing a component that needs useFormStatus. It only works in a Client Component but none of its parents are marked with \"use client\", so they're Server Components"
Received:
  "./app/server-with-errors/react-dom-apis/useformstatus/page.js
Error:   x You're importing a component that needs useFormStatus. It only works in a Client Component but none of its parents are marked with \"use client\"
  |·
  |·
   ,-[1:1]
 1 | import { useFormStatus } from 'react-dom'
   :          ^^^^^^^^^^^^^
 2 |·
 3 | console.log({ useFormStatus })
   `----"

  300 |
  301 |       expect(await session.hasRedbox()).toBe(true)
> 302 |       expect(await session.getRedboxSource()).toInclude(
      |                                               ^
  303 |         `You're importing a component that needs ${api}. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components`
  304 |       )
  305 |

  at Object.toInclude (development/acceptance-app/rsc-build-errors.test.ts:302:47)

● Error overlay - RSC build errors › should error when useFormState from react-dom is used in server component

expect(received).toInclude(expected)

Expected string to include:
  "You're importing a component that needs useFormState. It only works in a Client Component but none of its parents are marked with \"use client\", so they're Server Components"
Received:
  "./app/server-with-errors/react-dom-apis/useformstate/page.js
Error:   x You're importing a component that needs useFormState. It only works in a Client Component but none of its parents are marked with \"use client\"
  |·
  |·
   ,-[1:1]
 1 | import { useFormState } from 'react-dom'
   :          ^^^^^^^^^^^^
 2 |·
 3 | console.log({ useFormState })
   `----"

  300 |
  301 |       expect(await session.hasRedbox()).toBe(true)
> 302 |       expect(await session.getRedboxSource()).toInclude(
      |                                               ^
  303 |         `You're importing a component that needs ${api}. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components`
  304 |       )
  305 |

  at Object.toInclude (development/acceptance-app/rsc-build-errors.test.ts:302:47)

● Error overlay - RSC build errors › should throw an error when error file is a server component

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `Error overlay - RSC build errors should throw an error when error file is a server component 1`

- Snapshot  - 3
+ Received  + 2

@@ -1,13 +1,12 @@
  "./app/server-with-errors/error-file/error.js
- Error: 
-   x TEST_DIR/app/server-with-errors/error-file/error.js must be a Client Component. Add the "use client" directive the top
+ Error:   x TEST_DIR/app/server-with-errors/error-file/error.js must be a Client Component. Add the "use client" directive the top
    | of the file to resolve this issue.
    | Learn more: https://nextjs.org/docs/getting-started/react-essentials#client-components
    | 
    | 
-    ,-[TEST_DIR/app/server-with-errors/error-file/error.js:1:1]
+    ,----
   1 | export default function Error() {}
     : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     `----

  Import trace for requested module:

  386 |     } else {
  387 |       expect(next.normalizeTestDirContent(await session.getRedboxSource()))
> 388 |         .toMatchInlineSnapshot(`
      |          ^
  389 |         "./app/server-with-errors/error-file/error.js
  390 |         Error: 
  391 |           x TEST_DIR/app/server-with-errors/error-file/error.js must be a Client Component. Add the "use client" directive the top

  at Object.toMatchInlineSnapshot (development/acceptance-app/rsc-build-errors.test.ts:388:10)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test-start test/e2e/middleware-rewrites/test/index.test.ts (turbopack)

  • Middleware Rewrite > should handle static dynamic rewrite from middleware correctly
  • Middleware Rewrite > should rewrite correctly when navigating via history
  • Middleware Rewrite > should rewrite correctly when navigating via history after query update
  • Middleware Rewrite > should override with rewrite internally correctly
  • Middleware Rewrite > should override with rewrite externally correctly
  • Middleware Rewrite > should behave consistently on recursive rewrites
  • Middleware Rewrite > should allow to rewrite to a beforeFiles rewrite config
  • Middleware Rewrite > should allow to rewrite to a afterFiles rewrite config
Expand output

● Middleware Rewrite › should handle static dynamic rewrite from middleware correctly

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  70 |     })
  71 |
> 72 |     it('should handle static dynamic rewrite from middleware correctly', async () => {
     |     ^
  73 |       const browser = await webdriver(next.url, '/rewrite-to-static')
  74 |
  75 |       await check(() => browser.eval('next.router.query.slug'), 'post-1')

  at it (e2e/middleware-rewrites/test/index.test.ts:72:5)
  at tests (e2e/middleware-rewrites/test/index.test.ts:884:3)
  at Object.describe (e2e/middleware-rewrites/test/index.test.ts:12:1)

● Middleware Rewrite › should rewrite correctly when navigating via history

TIMED OUT: /Welcome Page A/

<head><meta charset="utf-8"><meta name="viewport" content="width=device-width"><meta name="next-head-count" content="2"><noscript data-n-css=""></noscript><script src="/_next/static/chunks/node_modules__pnpm_d7a54e._.js" defer=""></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__9fca2f._.js" defer=""></script><script src="/_next/static/chunks/41653_next_dist_pages_9708c8._.js" defer=""></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_c48bb4._.js" defer=""></script><script src="/_next/static/chunks/node_modules__pnpm_3cdde0._.js" defer=""></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__12532c._.js" defer=""></script><script src="/_next/static/chunks/41653_next_dist_pages_50abbe._.js" defer=""></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_ef69f3._.js" defer=""></script><script src="/_next/static/uIqMGkzI50jsEHoIyOIYX/_ssgManifest.js" defer=""></script><script src="/_next/static/uIqMGkzI50jsEHoIyOIYX/_buildManifest.js" defer=""></script><link as="script" rel="prefetch" href="/_next/static/chunks/pages/detail/%5B...slug%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/%5Bparam%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/about.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/fallback-true-blog/%5Bslug%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/ssg.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/dynamic-no-cache/%5Bid%5D.js"></head><body><div id="__next"><div><h1 class="title">About Page</h1><p></p><p class="middleware"></p><p class="now"></p></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"now":1724845547786},"__N_SSP":true},"page":"/","query":{},"buildId":"uIqMGkzI50jsEHoIyOIYX","isFallback":false,"isExperimentalCompile":false,"gssp":true,"locale":"en","locales":["en","ja","fr","es"],"defaultLocale":"en","scriptLoader":[]}</script><next-route-announcer><p aria-live="assertive" id="__next-route-announcer__" role="alert" style="border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; top: 0px; width: 1px; white-space: nowrap; overflow-wrap: normal;">About Page</p></next-route-announcer><script src="/_next/static/chunks/pages/%5Bparam%5D.js"></script><script src="/_next/static/chunks/pages/about.js"></script><script src="/_next/static/chunks/pages/detail/%5B...slug%5D.js"></script><script src="/_next/static/chunks/pages/fallback-true-blog/%5Bslug%5D.js"></script><script src="/_next/static/chunks/pages/ssg.js"></script><script src="/_next/static/chunks/pages/dynamic-no-cache/%5Bid%5D.js"></script><script src="/_next/static/chunks/node_modules__pnpm_a93355._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__2ece8a._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_7ab68c._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_900a2d._.js"></script><script src="/_next/static/chunks/node_modules__pnpm_ffb69b._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__50cfeb._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_5195c0._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_5e2861._.js"></script><script src="/_next/static/chunks/node_modules__pnpm_b7f8c6._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__568f9c._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_0f4b6d._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_87c84c._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__551b3d._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_8f94b6._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_93340b._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__a19bb6._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_54bb02._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_f93302._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__50a26d._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_be9ce1._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_6d661e._.js"></script></body>

undefined

  718 |
  719 |   if (hardError) {
> 720 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |           ^
  721 |   }
  722 |   return false
  723 | }

  at check (lib/next-test-utils.ts:720:11)
  at Object.<anonymous> (e2e/middleware-rewrites/test/index.test.ts:203:7)

● Middleware Rewrite › should rewrite correctly when navigating via history after query update

TIMED OUT: /Welcome Page A/

<head><meta charset="utf-8"><meta name="viewport" content="width=device-width"><meta name="next-head-count" content="2"><noscript data-n-css=""></noscript><script src="/_next/static/chunks/node_modules__pnpm_d7a54e._.js" defer=""></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__9fca2f._.js" defer=""></script><script src="/_next/static/chunks/41653_next_dist_pages_9708c8._.js" defer=""></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_c48bb4._.js" defer=""></script><script src="/_next/static/chunks/node_modules__pnpm_3cdde0._.js" defer=""></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__12532c._.js" defer=""></script><script src="/_next/static/chunks/41653_next_dist_pages_50abbe._.js" defer=""></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_ef69f3._.js" defer=""></script><script src="/_next/static/uIqMGkzI50jsEHoIyOIYX/_ssgManifest.js" defer=""></script><script src="/_next/static/uIqMGkzI50jsEHoIyOIYX/_buildManifest.js" defer=""></script><link as="script" rel="prefetch" href="/_next/static/chunks/pages/detail/%5B...slug%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/%5Bparam%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/about.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/fallback-true-blog/%5Bslug%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/ssg.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/dynamic-no-cache/%5Bid%5D.js"></head><body><div id="__next"><div><h1 class="title">About Page</h1><p></p><p class="middleware"></p><p class="now"></p></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"now":1724845579530},"__N_SSP":true},"page":"/","query":{},"buildId":"uIqMGkzI50jsEHoIyOIYX","isFallback":false,"isExperimentalCompile":false,"gssp":true,"locale":"en","locales":["en","ja","fr","es"],"defaultLocale":"en","scriptLoader":[]}</script><next-route-announcer><p aria-live="assertive" id="__next-route-announcer__" role="alert" style="border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; top: 0px; width: 1px; white-space: nowrap; overflow-wrap: normal;">About Page</p></next-route-announcer><script src="/_next/static/chunks/pages/%5Bparam%5D.js"></script><script src="/_next/static/chunks/pages/about.js"></script><script src="/_next/static/chunks/pages/detail/%5B...slug%5D.js"></script><script src="/_next/static/chunks/pages/fallback-true-blog/%5Bslug%5D.js"></script><script src="/_next/static/chunks/pages/ssg.js"></script><script src="/_next/static/chunks/pages/dynamic-no-cache/%5Bid%5D.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__a19bb6._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_54bb02._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_f93302._.js"></script><script src="/_next/static/chunks/node_modules__pnpm_ffb69b._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__50cfeb._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_5195c0._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_5e2861._.js"></script><script src="/_next/static/chunks/node_modules__pnpm_b7f8c6._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__568f9c._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_0f4b6d._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_87c84c._.js"></script><script src="/_next/static/chunks/node_modules__pnpm_a93355._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__551b3d._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_8f94b6._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_93340b._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__2ece8a._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_7ab68c._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_900a2d._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__50a26d._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_be9ce1._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_6d661e._.js"></script></body>

undefined

  718 |
  719 |   if (hardError) {
> 720 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |           ^
  721 |   }
  722 |   return false
  723 | }

  at check (lib/next-test-utils.ts:720:11)
  at Object.<anonymous> (e2e/middleware-rewrites/test/index.test.ts:219:7)

● Middleware Rewrite › should override with rewrite internally correctly

TIMED OUT: /Welcome Page A/

<head><meta charset="utf-8"><meta name="viewport" content="width=device-width"><meta name="next-head-count" content="2"><noscript data-n-css=""></noscript><script src="/_next/static/chunks/node_modules__pnpm_d7a54e._.js" defer=""></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__9fca2f._.js" defer=""></script><script src="/_next/static/chunks/41653_next_dist_pages_9708c8._.js" defer=""></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_c48bb4._.js" defer=""></script><script src="/_next/static/chunks/node_modules__pnpm_3cdde0._.js" defer=""></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__12532c._.js" defer=""></script><script src="/_next/static/chunks/41653_next_dist_pages_50abbe._.js" defer=""></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_ef69f3._.js" defer=""></script><script src="/_next/static/uIqMGkzI50jsEHoIyOIYX/_ssgManifest.js" defer=""></script><script src="/_next/static/uIqMGkzI50jsEHoIyOIYX/_buildManifest.js" defer=""></script><link as="script" rel="prefetch" href="/_next/static/chunks/pages/detail/%5B...slug%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/%5Bparam%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/about.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/fallback-true-blog/%5Bslug%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/ssg.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/dynamic-no-cache/%5Bid%5D.js"></head><body><div id="__next"><div><h1 class="title">About Page</h1><p></p><p class="middleware"></p><p class="now"></p></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"now":1724845611332},"__N_SSP":true},"page":"/","query":{},"buildId":"uIqMGkzI50jsEHoIyOIYX","isFallback":false,"isExperimentalCompile":false,"gssp":true,"locale":"en","locales":["en","ja","fr","es"],"defaultLocale":"en","scriptLoader":[]}</script><next-route-announcer><p aria-live="assertive" id="__next-route-announcer__" role="alert" style="border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; top: 0px; width: 1px; white-space: nowrap; overflow-wrap: normal;">About Page</p></next-route-announcer><script src="/_next/static/chunks/pages/%5Bparam%5D.js"></script><script src="/_next/static/chunks/pages/about.js"></script><script src="/_next/static/chunks/pages/detail/%5B...slug%5D.js"></script><script src="/_next/static/chunks/node_modules__pnpm_ffb69b._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__50cfeb._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_5195c0._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_5e2861._.js"></script><script src="/_next/static/chunks/node_modules__pnpm_a93355._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__2ece8a._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_7ab68c._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_900a2d._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__a19bb6._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_54bb02._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_f93302._.js"></script><script src="/_next/static/chunks/pages/fallback-true-blog/%5Bslug%5D.js"></script><script src="/_next/static/chunks/pages/ssg.js"></script><script src="/_next/static/chunks/pages/dynamic-no-cache/%5Bid%5D.js"></script><script src="/_next/static/chunks/node_modules__pnpm_b7f8c6._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__568f9c._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_0f4b6d._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_87c84c._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__551b3d._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_8f94b6._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_93340b._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__50a26d._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_be9ce1._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_6d661e._.js"></script></body>

undefined

  718 |
  719 |   if (hardError) {
> 720 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |           ^
  721 |   }
  722 |   return false
  723 | }

  at check (lib/next-test-utils.ts:720:11)
  at Object.<anonymous> (e2e/middleware-rewrites/test/index.test.ts:278:7)

● Middleware Rewrite › should override with rewrite externally correctly

TIMED OUT: /Example Domain/

<head><meta charset="utf-8"><meta name="viewport" content="width=device-width"><meta name="next-head-count" content="2"><noscript data-n-css=""></noscript><script src="/_next/static/chunks/node_modules__pnpm_d7a54e._.js" defer=""></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__9fca2f._.js" defer=""></script><script src="/_next/static/chunks/41653_next_dist_pages_9708c8._.js" defer=""></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_c48bb4._.js" defer=""></script><script src="/_next/static/chunks/node_modules__pnpm_3cdde0._.js" defer=""></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__12532c._.js" defer=""></script><script src="/_next/static/chunks/41653_next_dist_pages_50abbe._.js" defer=""></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_ef69f3._.js" defer=""></script><script src="/_next/static/uIqMGkzI50jsEHoIyOIYX/_ssgManifest.js" defer=""></script><script src="/_next/static/uIqMGkzI50jsEHoIyOIYX/_buildManifest.js" defer=""></script><link as="script" rel="prefetch" href="/_next/static/chunks/pages/detail/%5B...slug%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/%5Bparam%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/about.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/fallback-true-blog/%5Bslug%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/ssg.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/dynamic-no-cache/%5Bid%5D.js"></head><body><div id="__next"><div><h1 class="title">About Page</h1><p></p><p class="middleware"></p><p class="now"></p></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"now":1724845643163},"__N_SSP":true},"page":"/","query":{},"buildId":"uIqMGkzI50jsEHoIyOIYX","isFallback":false,"isExperimentalCompile":false,"gssp":true,"locale":"en","locales":["en","ja","fr","es"],"defaultLocale":"en","scriptLoader":[]}</script><next-route-announcer><p aria-live="assertive" id="__next-route-announcer__" role="alert" style="border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; top: 0px; width: 1px; white-space: nowrap; overflow-wrap: normal;">About Page</p></next-route-announcer><script src="/_next/static/chunks/pages/%5Bparam%5D.js"></script><script src="/_next/static/chunks/pages/about.js"></script><script src="/_next/static/chunks/pages/detail/%5B...slug%5D.js"></script><script src="/_next/static/chunks/pages/fallback-true-blog/%5Bslug%5D.js"></script><script src="/_next/static/chunks/node_modules__pnpm_ffb69b._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__50cfeb._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_5195c0._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_5e2861._.js"></script><script src="/_next/static/chunks/node_modules__pnpm_a93355._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__2ece8a._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_7ab68c._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_900a2d._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__a19bb6._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_54bb02._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_f93302._.js"></script><script src="/_next/static/chunks/node_modules__pnpm_b7f8c6._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__568f9c._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_0f4b6d._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_87c84c._.js"></script><script src="/_next/static/chunks/pages/ssg.js"></script><script src="/_next/static/chunks/pages/dynamic-no-cache/%5Bid%5D.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__551b3d._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_8f94b6._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_93340b._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__50a26d._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_be9ce1._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_6d661e._.js"></script></body>

undefined

  718 |
  719 |   if (hardError) {
> 720 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |           ^
  721 |   }
  722 |   return false
  723 | }

  at check (lib/next-test-utils.ts:720:11)
  at Object.<anonymous> (e2e/middleware-rewrites/test/index.test.ts:312:7)

● Middleware Rewrite › should behave consistently on recursive rewrites

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  431 |     })
  432 |
> 433 |     it(`should behave consistently on recursive rewrites`, async () => {
      |     ^
  434 |       const res = await fetchViaHTTP(next.url, `/rewrite-me-to-about`, {
  435 |         override: 'internal',
  436 |       })

  at it (e2e/middleware-rewrites/test/index.test.ts:433:5)
  at tests (e2e/middleware-rewrites/test/index.test.ts:884:3)
  at Object.describe (e2e/middleware-rewrites/test/index.test.ts:12:1)

● Middleware Rewrite › should allow to rewrite to a beforeFiles rewrite config

TIMED OUT: /Welcome Page A/

<head><meta charset="utf-8"><meta name="viewport" content="width=device-width"><meta name="next-head-count" content="2"><noscript data-n-css=""></noscript><script src="/_next/static/chunks/node_modules__pnpm_d7a54e._.js" defer=""></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__9fca2f._.js" defer=""></script><script src="/_next/static/chunks/41653_next_dist_pages_9708c8._.js" defer=""></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_c48bb4._.js" defer=""></script><script src="/_next/static/chunks/node_modules__pnpm_3cdde0._.js" defer=""></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__12532c._.js" defer=""></script><script src="/_next/static/chunks/41653_next_dist_pages_50abbe._.js" defer=""></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_ef69f3._.js" defer=""></script><script src="/_next/static/uIqMGkzI50jsEHoIyOIYX/_ssgManifest.js" defer=""></script><script src="/_next/static/uIqMGkzI50jsEHoIyOIYX/_buildManifest.js" defer=""></script><link as="script" rel="prefetch" href="/_next/static/chunks/pages/detail/%5B...slug%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/%5Bparam%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/about.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/fallback-true-blog/%5Bslug%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/ssg.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/dynamic-no-cache/%5Bid%5D.js"><title>Application error: a client-side exception has occurred</title></head><body><div id="__next"><div style="font-family: system-ui, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;; height: 100vh; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center;"><div style="line-height: 48px;"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><div style="display: inline-block;"><h2 style="font-size: 14px; font-weight: 400; line-height: 28px;">Application error: a client-side exception has occurred (see the browser console for more information).</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"now":1724845737628},"__N_SSP":true},"page":"/","query":{},"buildId":"uIqMGkzI50jsEHoIyOIYX","isFallback":false,"isExperimentalCompile":false,"gssp":true,"locale":"en","locales":["en","ja","fr","es"],"defaultLocale":"en","scriptLoader":[]}</script><script src="/_next/static/chunks/pages/%5Bparam%5D.js"></script><script src="/_next/static/chunks/pages/about.js"></script><script src="/_next/static/chunks/node_modules__pnpm_ffb69b._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__50cfeb._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_5195c0._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_5e2861._.js"></script><script src="/_next/static/chunks/node_modules__pnpm_a93355._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__2ece8a._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_7ab68c._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_900a2d._.js"></script><script src="/_next/static/chunks/pages/detail/%5B...slug%5D.js"></script><script src="/_next/static/chunks/pages/fallback-true-blog/%5Bslug%5D.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__a19bb6._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_54bb02._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_f93302._.js"></script><script src="/_next/static/chunks/node_modules__pnpm_b7f8c6._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__568f9c._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_0f4b6d._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_87c84c._.js"></script><script src="/_next/static/chunks/pages/ssg.js"></script><script src="/_next/static/chunks/pages/dynamic-no-cache/%5Bid%5D.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__551b3d._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_8f94b6._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_93340b._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__50a26d._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_be9ce1._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_6d661e._.js"></script><script src="/_next/static/chunks/pages/_error.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__4316ad._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_ae1b7c._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_d8d581._.js"></script><next-route-announcer><p aria-live="assertive" id="__next-route-announcer__" role="alert" style="border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; top: 0px; width: 1px; white-space: nowrap; overflow-wrap: normal;"></p></next-route-announcer></body>

undefined

  718 |
  719 |   if (hardError) {
> 720 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |           ^
  721 |   }
  722 |   return false
  723 | }

  at check (lib/next-test-utils.ts:720:11)
  at Object.<anonymous> (e2e/middleware-rewrites/test/index.test.ts:476:7)

● Middleware Rewrite › should allow to rewrite to a afterFiles rewrite config

TIMED OUT: /Welcome Page B/

<head><meta charset="utf-8"><meta name="viewport" content="width=device-width"><meta name="next-head-count" content="2"><noscript data-n-css=""></noscript><script src="/_next/static/chunks/node_modules__pnpm_d7a54e._.js" defer=""></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__9fca2f._.js" defer=""></script><script src="/_next/static/chunks/41653_next_dist_pages_9708c8._.js" defer=""></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_c48bb4._.js" defer=""></script><script src="/_next/static/chunks/node_modules__pnpm_3cdde0._.js" defer=""></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__12532c._.js" defer=""></script><script src="/_next/static/chunks/41653_next_dist_pages_50abbe._.js" defer=""></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_ef69f3._.js" defer=""></script><script src="/_next/static/uIqMGkzI50jsEHoIyOIYX/_ssgManifest.js" defer=""></script><script src="/_next/static/uIqMGkzI50jsEHoIyOIYX/_buildManifest.js" defer=""></script><link as="script" rel="prefetch" href="/_next/static/chunks/pages/detail/%5B...slug%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/%5Bparam%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/about.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/fallback-true-blog/%5Bslug%5D.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/ssg.js"><link as="script" rel="prefetch" href="/_next/static/chunks/pages/dynamic-no-cache/%5Bid%5D.js"><title>Application error: a client-side exception has occurred</title></head><body><div id="__next"><div style="font-family: system-ui, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;; height: 100vh; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center;"><div style="line-height: 48px;"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><div style="display: inline-block;"><h2 style="font-size: 14px; font-weight: 400; line-height: 28px;">Application error: a client-side exception has occurred (see the browser console for more information).</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"now":1724845769358},"__N_SSP":true},"page":"/","query":{},"buildId":"uIqMGkzI50jsEHoIyOIYX","isFallback":false,"isExperimentalCompile":false,"gssp":true,"locale":"en","locales":["en","ja","fr","es"],"defaultLocale":"en","scriptLoader":[]}</script><script src="/_next/static/chunks/pages/%5Bparam%5D.js"></script><script src="/_next/static/chunks/node_modules__pnpm_ffb69b._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__50cfeb._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_5195c0._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_5e2861._.js"></script><script src="/_next/static/chunks/pages/about.js"></script><script src="/_next/static/chunks/pages/detail/%5B...slug%5D.js"></script><script src="/_next/static/chunks/pages/fallback-true-blog/%5Bslug%5D.js"></script><script src="/_next/static/chunks/node_modules__pnpm_a93355._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__2ece8a._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_7ab68c._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_900a2d._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__a19bb6._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_54bb02._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_f93302._.js"></script><script src="/_next/static/chunks/node_modules__pnpm_b7f8c6._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__568f9c._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_0f4b6d._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_87c84c._.js"></script><script src="/_next/static/chunks/pages/ssg.js"></script><script src="/_next/static/chunks/pages/dynamic-no-cache/%5Bid%5D.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__551b3d._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_8f94b6._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_93340b._.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__50a26d._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_be9ce1._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_6d661e._.js"></script><script src="/_next/static/chunks/pages/_error.js"></script><script src="/_next/static/chunks/%5Broot%20of%20the%20server%5D__4316ad._.js"></script><script src="/_next/static/chunks/41653_next_dist_pages_ae1b7c._.js"></script><script src="/_next/static/chunks/%5Bnext%5D_entry_page-loader_ts_d8d581._.js"></script><next-route-announcer><p aria-live="assertive" id="__next-route-announcer__" role="alert" style="border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; top: 0px; width: 1px; white-space: nowrap; overflow-wrap: normal;"></p></next-route-announcer></body>

undefined

  718 |
  719 |   if (hardError) {
> 720 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |           ^
  721 |   }
  722 |   return false
  723 | }

  at check (lib/next-test-utils.ts:720:11)
  at Object.<anonymous> (e2e/middleware-rewrites/test/index.test.ts:492:7)

Read more about building and testing Next.js in contributing.md.

ForsakenHarmony and others added 8 commits August 20, 2024 18:20
### What?
Follow up for the previous PR in the stack updating references,
lockfiles and
snapshots.

### Why?
https://vercel.com/blog/turbopack-moving-homes

### How?
https://github.com/vercel/next-turbo-merge

Closes PACK-3163
# Conflicts:
#	.config/ast-grep/rule-tests/__snapshots__/no-context-snapshot.yml
#	.config/ast-grep/rules/no-context.yml
#	.config/nextest.toml
#	.eslintignore
#	.eslintrc.cli.json
#	.github/workflows/test-turbopack-rust-bench-test.yml
#	.prettierignore
#	Cargo.lock
#	Cargo.toml
#	package.json
#	packages/next/package.json
#	pnpm-lock.yaml
#	sgconfig.yml
#	turbopack/crates/turbo-tasks-memory/tests/generics.rs
#	turbopack/crates/turbo-tasks-memory/tests/generics.rs~7c3b279044 (chore: fix references for the new turbopack crates (#68128))
#	turbopack/crates/turbopack-binding/Cargo.toml
#	turbopack/crates/turbopack-binding/src/lib.rs
#	turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/dynamic-import/output/4c35f_tests_snapshot_basic-tree-shake_dynamic-import_input_index_c9a76e.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/dynamic-import/output/79fb1_turbopack-tests_tests_snapshot_basic-tree-shake_dynamic-import_input_lib_029950.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/dynamic-import/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_dynamic-import_input_lib_f9749a.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_index_8f30d2.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/4c35f_tests_snapshot_basic-tree-shake_export-namespace_input_index_6382de.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/import-named-all/output/4c35f_tests_snapshot_basic-tree-shake_import-named-all_input_index_10d2db.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/import-named/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_import-named_input_index_e45c55.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/import-namespace/output/4c35f_tests_snapshot_basic-tree-shake_import-namespace_input_index_6d0958.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/import-side-effect/output/4c35f_tests_snapshot_basic-tree-shake_import-side-effect_input_index_ef3f12.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/require-side-effect/output/4c35f_tests_snapshot_basic-tree-shake_require-side-effect_input_index_e3ee69.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/tree-shake-test-1/output/4c35f_tests_snapshot_basic-tree-shake_tree-shake-test-1_input_index_5eb8fa.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic/async_chunk/output/4e721_crates_turbopack-tests_tests_snapshot_basic_async_chunk_input_import_46e42b.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic/async_chunk/output/4e721_crates_turbopack-tests_tests_snapshot_basic_async_chunk_input_index_8c33d5.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic/async_chunk/output/crates_turbopack-tests_tests_snapshot_basic_async_chunk_input_import_a037e9.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic/async_chunk/output/crates_turbopack-tests_tests_snapshot_basic_async_chunk_input_index_aa8e1e.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic/async_chunk_build/output/79fb1_turbopack-tests_tests_snapshot_basic_async_chunk_build_input_import_0c7896.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic/async_chunk_build/output/b1abf_turbopack-tests_tests_snapshot_basic_async_chunk_build_input_import_6f110a.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic/chunked/output/crates_turbopack-tests_tests_snapshot_basic_chunked_input_index_9dc02c.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic/chunked/output/turbopack_crates_turbopack-tests_tests_snapshot_basic_chunked_input_index_e02b0b.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic/shebang/output/crates_turbopack-tests_tests_snapshot_basic_shebang_input_index_b957af.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic/shebang/output/turbopack_crates_turbopack-tests_tests_snapshot_basic_shebang_input_index_4cce73.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic/top-level-await/output/4e721_crates_turbopack-tests_tests_snapshot_basic_top-level-await_input_index_d10990.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic/top-level-await/output/b1abf_turbopack-tests_tests_snapshot_basic_top-level-await_input_UserAPI_ba56f9.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic/top-level-await/output/crates_turbopack-tests_tests_snapshot_basic_top-level-await_input_UserAPI_0d64e4.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/basic/top-level-await/output/crates_turbopack-tests_tests_snapshot_basic_top-level-await_input_index_922e09.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/comptime/define/output/4e721_crates_turbopack-tests_tests_snapshot_comptime_define_input_index_8b20d1.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/comptime/define/output/crates_turbopack-tests_tests_snapshot_comptime_define_input_index_5931c6.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/comptime/early-return/output/4e721_crates_turbopack-tests_tests_snapshot_comptime_early-return_input_index_6b26d1.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/comptime/early-return/output/crates_turbopack-tests_tests_snapshot_comptime_early-return_input_index_c9750a.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/absolute-uri-import/output/b1abf_turbopack-tests_tests_snapshot_css_absolute-uri-import_input_index_1db1fc.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/absolute-uri-import/output/crates_turbopack-tests_tests_snapshot_css_absolute-uri-import_input_index_9f23d7.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/chained-attributes/output/4e721_crates_turbopack-tests_tests_snapshot_css_chained-attributes_input_index_36d809.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/chained-attributes/output/crates_turbopack-tests_tests_snapshot_css_chained-attributes_input_index_e6e7e4.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/css-legacy-nesting/output/4e721_crates_turbopack-tests_tests_snapshot_css_css-legacy-nesting_input_index_b48c7f.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/css-legacy-nesting/output/crates_turbopack-tests_tests_snapshot_css_css-legacy-nesting_input_index_276773.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/4e721_crates_turbopack-tests_tests_snapshot_css_css-modules_input_index_9e42c2.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/79fb1_turbopack-tests_tests_snapshot_css_css-modules_input_style_module_css_32764e._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/b1abf_turbopack-tests_tests_snapshot_css_css-modules_input_style_module_css_adb3ea._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/crates_turbopack-tests_tests_snapshot_css_css-modules_input_index_3c81e2.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/08d19_foo_style_css_1f8924._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/08d19_foo_style_module_7d7e1c.css.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/8697f_foo_style_css_01e50f._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/crates_turbopack-tests_tests_snapshot_css_css_input_index_71eb7f.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css_input_index_73a360.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/relative-uri-import/output/b1abf_turbopack-tests_tests_snapshot_css_relative-uri-import_input_index_0508f5.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/relative-uri-import/output/crates_turbopack-tests_tests_snapshot_css_relative-uri-import_input_index_f43cc9.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/url-in-supports-query/output/79fb1_turbopack-tests_tests_snapshot_css_url-in-supports-query_input_index_8263e6.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/css/url-in-supports-query/output/b1abf_turbopack-tests_tests_snapshot_css_url-in-supports-query_input_index_6e69b0.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/output/4e721_crates_turbopack-tests_tests_snapshot_cssmodules_composes_input_index_8c962e.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/output/crates_turbopack-tests_tests_snapshot_cssmodules_composes_input_index_607308.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/4c35f_tests_snapshot_cssmodules_relative-uri-import_input_index_a78f7c.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/a587c_tests_snapshot_cssmodules_relative-uri-import_input_index_659e9a.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/dynamic-request/very-dynamic/output/79fb1_turbopack-tests_tests_snapshot_dynamic-request_very-dynamic_input_index_c551c8.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/dynamic-request/very-dynamic/output/b1abf_turbopack-tests_tests_snapshot_dynamic-request_very-dynamic_input_index_254fe8.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/emotion/emotion/output/4e721_crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_b176e3.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/emotion/emotion/output/crates_turbopack-tests_tests_snapshot_emotion_emotion_input_index_b67a84.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/env/env/output/crates_turbopack-tests_tests_snapshot_env_env_input_index_6512b1.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/env/env/output/turbopack_crates_turbopack-tests_tests_snapshot_env_env_input_index_b481cd.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/evaluated_entrry/runtime_entry/output/4c35f_tests_snapshot_evaluated_entrry_runtime_entry_input_index_51f6b2.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/evaluated_entrry/runtime_entry/output/a587c_tests_snapshot_evaluated_entrry_runtime_entry_input_index_1ec742.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/example/example/output/4e721_crates_turbopack-tests_tests_snapshot_example_example_input_index_9686eb.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/example/example/output/crates_turbopack-tests_tests_snapshot_example_example_input_index_86f5c3.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/output/4e721_crates_turbopack-tests_tests_snapshot_export-alls_cjs-2_input_index_5c4719.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/export-alls/cjs-2/output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-2_input_index_d8a134.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/output/4e721_crates_turbopack-tests_tests_snapshot_export-alls_cjs-script_input_index_cf9dd6.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/export-alls/cjs-script/output/crates_turbopack-tests_tests_snapshot_export-alls_cjs-script_input_index_fae267.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/import-meta/cjs/output/4e721_crates_turbopack-tests_tests_snapshot_import-meta_cjs_input_index_f94bd9.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/import-meta/cjs/output/crates_turbopack-tests_tests_snapshot_import-meta_cjs_input_index_cbf1c5.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/import-meta/esm-multiple/output/79fb1_turbopack-tests_tests_snapshot_import-meta_esm-multiple_input_index_bf1234.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/import-meta/esm-multiple/output/b1abf_turbopack-tests_tests_snapshot_import-meta_esm-multiple_input_index_ad408f.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/import-meta/esm-mutable/output/b1abf_turbopack-tests_tests_snapshot_import-meta_esm-mutable_input_index_490142.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/import-meta/esm-mutable/output/crates_turbopack-tests_tests_snapshot_import-meta_esm-mutable_input_index_156a15.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/import-meta/esm-object/output/4e721_crates_turbopack-tests_tests_snapshot_import-meta_esm-object_input_index_165d4c.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/import-meta/esm-object/output/crates_turbopack-tests_tests_snapshot_import-meta_esm-object_input_index_a40b5c.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/import-meta/esm/output/4e721_crates_turbopack-tests_tests_snapshot_import-meta_esm_input_index_0a6361.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/import-meta/esm/output/crates_turbopack-tests_tests_snapshot_import-meta_esm_input_index_f9fbd8.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/import-meta/url/output/4e721_crates_turbopack-tests_tests_snapshot_import-meta_url_input_index_ca7f9d.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/import-meta/url/output/crates_turbopack-tests_tests_snapshot_import-meta_url_input_index_d1e531.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/duplicate-binding/output/79fb1_turbopack-tests_tests_snapshot_imports_duplicate-binding_input_index_be113b.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/duplicate-binding/output/b1abf_turbopack-tests_tests_snapshot_imports_duplicate-binding_input_index_837872.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/dynamic/output/4e721_crates_turbopack-tests_tests_snapshot_imports_dynamic_input_index_f85706.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/dynamic/output/4e721_crates_turbopack-tests_tests_snapshot_imports_dynamic_input_vercel_mjs_a2d40e._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/dynamic/output/crates_turbopack-tests_tests_snapshot_imports_dynamic_input_index_e773b5.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/dynamic/output/crates_turbopack-tests_tests_snapshot_imports_dynamic_input_vercel_mjs_b7663b._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/json/output/crates_turbopack-tests_tests_snapshot_imports_json_input_index_d98c3c.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/json/output/turbopack_crates_turbopack-tests_tests_snapshot_imports_json_input_index_d3d451.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/order/output/crates_turbopack-tests_tests_snapshot_imports_order_input_index_ffb1b9.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/order/output/turbopack_crates_turbopack-tests_tests_snapshot_imports_order_input_index_d2d66e.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/resolve_error_cjs/output/79fb1_turbopack-tests_tests_snapshot_imports_resolve_error_cjs_input_index_6a5153.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/resolve_error_cjs/output/b1abf_turbopack-tests_tests_snapshot_imports_resolve_error_cjs_input_index_ee035d.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/resolve_error_esm/output/79fb1_turbopack-tests_tests_snapshot_imports_resolve_error_esm_input_index_91d712.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/resolve_error_esm/output/b1abf_turbopack-tests_tests_snapshot_imports_resolve_error_esm_input_index_9d62ac.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/output/4c35f_tests_snapshot_imports_static-and-dynamic_input_vercel_mjs_cbd419._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/output/79fb1_turbopack-tests_tests_snapshot_imports_static-and-dynamic_input_index_09e9a5.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/output/a587c_tests_snapshot_imports_static-and-dynamic_input_vercel_mjs_aa3704._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/static-and-dynamic/output/b1abf_turbopack-tests_tests_snapshot_imports_static-and-dynamic_input_index_e8502f.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/static/output/4e721_crates_turbopack-tests_tests_snapshot_imports_static_input_index_97c6d9.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/static/output/crates_turbopack-tests_tests_snapshot_imports_static_input_index_300143.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/subpath-imports-nested/output/4c35f_tests_snapshot_imports_subpath-imports-nested_input_index_cef629.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/subpath-imports-nested/output/a587c_tests_snapshot_imports_subpath-imports-nested_input_index_b710e1.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/subpath-imports/output/b1abf_turbopack-tests_tests_snapshot_imports_subpath-imports_input_index_a0198f.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/imports/subpath-imports/output/crates_turbopack-tests_tests_snapshot_imports_subpath-imports_input_index_f436bb.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/mdx/error/output/crates_turbopack-tests_tests_snapshot_mdx_error_input_index_743c8b.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/mdx/error/output/crates_turbopack-tests_tests_snapshot_mdx_error_input_index_a3c4fd.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/mdx/error/output/turbopack_crates_turbopack-tests_tests_snapshot_mdx_error_input_index_bb12ba.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/mdx/error/output/turbopack_crates_turbopack-tests_tests_snapshot_mdx_error_input_index_e6acdd.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/minification/paren-remover/output/79fb1_turbopack-tests_tests_snapshot_minification_paren-remover_input_index_eab450.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/minification/paren-remover/output/b1abf_turbopack-tests_tests_snapshot_minification_paren-remover_input_index_9fb543.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/node/node_protocol_external/output/79fb1_turbopack-tests_tests_snapshot_node_node_protocol_external_input_index_0fca49.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/node/node_protocol_external/output/b1abf_turbopack-tests_tests_snapshot_node_node_protocol_external_input_index_763243.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/node/spawn_dynamic/output/4e721_crates_turbopack-tests_tests_snapshot_node_spawn_dynamic_input_index_870a27.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/node/spawn_dynamic/output/crates_turbopack-tests_tests_snapshot_node_spawn_dynamic_input_index_2d1475.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/node/spawn_node_eval/output/4e721_crates_turbopack-tests_tests_snapshot_node_spawn_node_eval_input_index_f0344c.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/node/spawn_node_eval/output/crates_turbopack-tests_tests_snapshot_node_spawn_node_eval_input_index_123ad9.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/runtime/default_build_runtime/output/[turbopack]_runtime.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/runtime/default_dev_runtime/output/b1abf_turbopack-tests_tests_snapshot_runtime_default_dev_runtime_input_index_b6426d.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/styled_components/styled_components/output/4c35f_tests_snapshot_styled_components_styled_components_input_index_c06781.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/styled_components/styled_components/output/a587c_tests_snapshot_styled_components_styled_components_input_index_2f3cbd.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/output/4c35f_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_52fca0.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/output/a587c_tests_snapshot_swc_transforms_mono_transforms_input_packages_app_index_754b2e.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/swc_transforms/preset_env/output/79fb1_turbopack-tests_tests_snapshot_swc_transforms_preset_env_input_index_06a68c.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/swc_transforms/preset_env/output/b1abf_turbopack-tests_tests_snapshot_swc_transforms_preset_env_input_index_354b2d.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/typescript/jsconfig-baseurl/output/79fb1_turbopack-tests_tests_snapshot_typescript_jsconfig-baseurl_input_index_c88e5b.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/typescript/jsconfig-baseurl/output/b1abf_turbopack-tests_tests_snapshot_typescript_jsconfig-baseurl_input_index_c6a63d.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-baseurl/output/4c35f_tests_snapshot_typescript_tsconfig-baseurl_input_index_ts_20e2ba._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-baseurl/output/a587c_tests_snapshot_typescript_tsconfig-baseurl_input_index_ts_a8d962._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-extends-module-full-path/output/457d9_snapshot_typescript_tsconfig-extends-module-full-path_input_index_ts_282934._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-extends-module-full-path/output/8562f_snapshot_typescript_tsconfig-extends-module-full-path_input_index_ts_4d2fc7._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-extends-module/output/4c35f_tests_snapshot_typescript_tsconfig-extends-module_input_index_ts_ec47b6._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-extends-module/output/a587c_tests_snapshot_typescript_tsconfig-extends-module_input_index_ts_7bfae2._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-extends-relative-dir/output/4c35f_tests_snapshot_typescript_tsconfig-extends-relative-dir_input_index_ts_704a63._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-extends-relative-dir/output/a587c_tests_snapshot_typescript_tsconfig-extends-relative-dir_input_index_ts_19e057._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-extends-without-ext/output/4c35f_tests_snapshot_typescript_tsconfig-extends-without-ext_input_index_ts_cfc0d8._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-extends-without-ext/output/a587c_tests_snapshot_typescript_tsconfig-extends-without-ext_input_index_ts_bd75ee._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-extends/output/4c35f_tests_snapshot_typescript_tsconfig-extends_input_index_ts_32cac0._.js.map
#	turbopack/crates/turbopack-tests/tests/snapshot/typescript/tsconfig-extends/output/a587c_tests_snapshot_typescript_tsconfig-extends_input_index_ts_3e0e16._.js.map
## Why?

- [2.0.7](https://github.com/vercel/turbo/releases/tag/v2.0.7) was
recently released.
- The [terminal
UI](https://turbo.build/repo/docs/reference/configuration#ui) is no
longer the default, so toggling that on.
## Why?

Notable change of v9 is Corepack is enabled by default.
So we can ensure all package manage/resolved exact same version of pnpm.

- [**v9.0.0**](https://github.com/pnpm/pnpm/releases/tag/v9.0.0):
Discontinued support for Node.js v16 and introduced Corepack
compatibility checks. New configuration updates include enabling
`dedupe-injected-deps` and changing the lockfile to version 9, with
better readability and resistance to Git conflicts.

...

- [**v9.4.0**](https://github.com/pnpm/pnpm/releases/tag/v9.4.0)

- Kudos to @ryota-murakami for the original :pr:! →
#64854

## Changes

- https://pnpm.io/npmrc#link-workspace-packages defaults to `false` now,
so setting it to `true`

Closes NEXT-3211
## Why?

- More support for [catalogs](https://pnpm.io/catalogs) (read
[changelog](https://github.com/pnpm/pnpm/releases) for more info).
- Successful
[build-and-deploy](https://github.com/vercel/next.js/actions/runs/10127840891)
run
@timneutkens timneutkens changed the base branch from canary to 14-2-1 August 26, 2024 13:16
@timneutkens timneutkens changed the base branch from 14-2-1 to canary August 26, 2024 15:43
@timneutkens timneutkens changed the base branch from canary to 14-2-1 August 26, 2024 15:43
@timneutkens timneutkens changed the base branch from 14-2-1 to canary August 26, 2024 15:52
@timneutkens timneutkens changed the base branch from canary to 14-2-1 August 26, 2024 15:56
@timneutkens timneutkens changed the base branch from 14-2-1 to canary August 27, 2024 12:21
@timneutkens timneutkens changed the base branch from canary to 14-2-1 August 27, 2024 12:21
@timneutkens timneutkens changed the title chore: backport turbopack to next 14 chore: try to backport turbopack to next 14 Aug 29, 2024
@timneutkens timneutkens changed the title chore: try to backport turbopack to next 14 chore: try to backport to next 14 Aug 29, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 14, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
create-next-app Related to our CLI tool for quickly starting a new Next.js application. created-by: Turbopack team PRs by the Turbopack team. Documentation Related to Next.js' official documentation. examples Issue/PR related to examples Font (next/font) Related to Next.js Font Optimization. locked tests Turbopack Related to Turbopack with Next.js. type: next
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants