Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Update send to v0.18.0 #78816

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

Open
wants to merge 2 commits into
base: canary
Choose a base branch
from
Open

Conversation

nicole0707
Copy link

@nicole0707 nicole0707 commented May 4, 2025

Why?

Currently, Next.js uses a precompiled version of send under next/dist/compiled/send, which is based on an outdated version. This older version omits headers like Content-Security-Policy (CSP) when returning a 304, even if those headers were present in the initial 200 response.

As a result, CSP headers are either missing entirely or fallback to default CDN-level policies in cached responses. This behavior causes security issues or inconsistent enforcement in strict CSP environments.

What?

This PR upgrades the internal send package used in static asset serving to the latest official version (v1.2.0), which includes proper handling of headers in 304 Not Modified responses.

Fixes #78815

@ijjk ijjk added the type: next label May 4, 2025
@ijjk
Copy link
Member

ijjk commented May 4, 2025

Allow CI Workflow Run

  • approve CI run for commit: 505a8a5

Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer

@nicole0707 nicole0707 marked this pull request as ready for review May 4, 2025 04:47
@nicole0707
Copy link
Author

Hi @timneutkens, I am not sure you are the right person to review this PR, but based on the commit log, it looks like you were the last one to update this folder. Cheers!

@eps1lon eps1lon requested a review from ijjk May 5, 2025 09:34
@ijjk
Copy link
Member

ijjk commented May 5, 2025

Failing test suites

Commit: b9114ce

pnpm test test/unit/image-optimizer/detect-content-type.test.ts

Expand output

● Test suite failed to run

TypeError: Cannot read properties of undefined (reading 'define')

  4 | // TODO: Remove this once "send" has updated the "mime", or next.js use custom version of "mime"
  5 | // Although "mime" has already add avif in version 2.4.7, "send" is still using [email protected]
> 6 | send.mime.define({
    |           ^
  7 |   'image/avif': ['avif'],
  8 |   'image/x-icns': ['icns'],
  9 | })

  at Object.define (../packages/next/src/server/serve-static.ts:6:11)
  at Object.<anonymous> (../packages/next/dist/server/image-optimizer.js:89:22)
  at Object.<anonymous> (unit/image-optimizer/detect-content-type.test.ts:5:25)

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

pnpm test test/integration/404-page-app/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:35203/abc failed, reason: connect ECONNREFUSED 127.0.0.1:35203

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

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

pnpm test test/integration/app-config-asset-prefix/test/index.test.js (turbopack)

  • App assetPrefix config > should render correctly with assetPrefix: "/"
Expand output

● App assetPrefix config › should render correctly with assetPrefix: "/"

page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:44055/
Call log:
  - navigating to "http://localhost:44055/", waiting until "load"

  313 |     opts?.beforePageLoad?.(page)
  314 |
> 315 |     await page.goto(url, { waitUntil: 'load' })
      |                ^
  316 |   }
  317 |
  318 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:315:16)
  at webdriver (lib/next-webdriver.ts:143:3)
  at Object.<anonymous> (integration/app-config-asset-prefix/test/index.test.js:25:21)

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

pnpm test test/integration/development-hmr-refresh/test/index.test.js

  • page should not reload when the file is not changed

Expand output

● page should not reload when the file is not changed

page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:34613/with+Special&Chars=
Call log:
  - navigating to "http://localhost:34613/with+Special&Chars=", waiting until "load"

  313 |     opts?.beforePageLoad?.(page)
  314 |
> 315 |     await page.goto(url, { waitUntil: 'load' })
      |                ^
  316 |   }
  317 |
  318 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:315:16)
  at webdriver (lib/next-webdriver.ts:143:3)
  at Object.<anonymous> (integration/development-hmr-refresh/test/index.test.js:19:19)

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

pnpm test test/integration/app-dir-export/test/trailing-slash-dev.test.ts

  • app dir - with output export - trailing slash dev > development mode > should work in dev with trailingSlash 'false'
  • app dir - with output export - trailing slash dev > development mode > should work in dev with trailingSlash 'true'
Expand output

● app dir - with output export - trailing slash dev › development mode › should work in dev with trailingSlash 'false'

page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:36679/
Call log:
  - navigating to "http://localhost:36679/", waiting until "load"

  313 |     opts?.beforePageLoad?.(page)
  314 |
> 315 |     await page.goto(url, { waitUntil: 'load' })
      |                ^
  316 |   }
  317 |
  318 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:315:16)
  at webdriver (lib/next-webdriver.ts:143:3)
  at runTests (integration/app-dir-export/test/utils.ts:189:23)
  at integration/app-dir-export/test/trailing-slash-dev.test.ts:10:11

● app dir - with output export - trailing slash dev › development mode › should work in dev with trailingSlash 'true'

page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:35727/
Call log:
  - navigating to "http://localhost:35727/", waiting until "load"

  313 |     opts?.beforePageLoad?.(page)
  314 |
> 315 |     await page.goto(url, { waitUntil: 'load' })
      |                ^
  316 |   }
  317 |
  318 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:315:16)
  at webdriver (lib/next-webdriver.ts:143:3)
  at runTests (integration/app-dir-export/test/utils.ts:189:23)
  at integration/app-dir-export/test/trailing-slash-dev.test.ts:10:11

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

pnpm test test/integration/404-page-custom-error/test/index.test.js (turbopack)

  • Default 404 Page with custom _error > development mode > should respond to 404 correctly
  • Default 404 Page with custom _error > development mode > should render error correctly
  • Default 404 Page with custom _error > development mode > should render index page normal
Expand output

● Default 404 Page with custom _error › development mode › should respond to 404 correctly

FetchError: request to http://localhost:37587/404 failed, reason: connect ECONNREFUSED 127.0.0.1:37587

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● Default 404 Page with custom _error › development mode › should render error correctly

FetchError: request to http://localhost:37587/err failed, reason: connect ECONNREFUSED 127.0.0.1:37587

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● Default 404 Page with custom _error › development mode › should render index page normal

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

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

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

pnpm test test/integration/app-functional/test/index.test.js

  • Document and App > should not have any missing key warnings
Expand output

● Document and App › should not have any missing key warnings

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

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

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

pnpm test test/integration/app-aspath/test/index.test.js

  • App asPath > should not have any changes in asPath after a bundle rebuild
Expand output

● App asPath › should not have any changes in asPath after a bundle rebuild

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

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

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

pnpm test test/integration/missing-document-component-error/test/index.test.js

  • Missing _document components error > should detect missing Html component
  • Missing _document components error > should detect missing Head component
  • Missing _document components error > should detect missing Main component
  • Missing _document components error > should detect missing NextScript component
  • Missing _document components error > should detect multiple missing document components
Expand output

● Missing _document components error › should detect missing Html component

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

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● Missing _document components error › should detect missing Head component

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

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● Missing _document components error › should detect missing Main component

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

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● Missing _document components error › should detect missing NextScript component

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

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● Missing _document components error › should detect multiple missing document components

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

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

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

pnpm test test/integration/app-dir-export/test/dev-custom-dist-dir.test.ts (turbopack)

  • app dir - with output export and custom distDir (next dev) > should render properly
Expand output

● app dir - with output export and custom distDir (next dev) › should render properly

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

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

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

pnpm test test/integration/bigint/test/index.test.js (turbopack)

  • bigint API route support > development mode > should return 200
  • bigint API route support > development mode > should return the BigInt result text
Expand output

● bigint API route support › development mode › should return 200

FetchError: request to http://localhost:43813/api/bigint failed, reason: connect ECONNREFUSED 127.0.0.1:43813

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● bigint API route support › development mode › should return the BigInt result text

FetchError: request to http://localhost:43813/api/bigint failed, reason: connect ECONNREFUSED 127.0.0.1:43813

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

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

pnpm test test/integration/empty-project/test/index.test.js

  • Empty Project > Should not time out and return 404
Expand output

● Empty Project › Should not time out and return 404

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

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

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

pnpm test test/integration/babel-next-image/babel-next-image.test.js

  • babel-next-image > should work with babel and next/image
Expand output

● babel-next-image › should work with babel and next/image

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

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

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

pnpm test test/integration/babel/test/index.test.js

  • Babel > Rendering via HTTP > Should compile a page with flowtype correctly
Expand output

● Babel › Rendering via HTTP › Should compile a page with flowtype correctly

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

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

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

pnpm test test/integration/catches-missing-getStaticProps/test/index.test.js

  • Catches Missing getStaticProps > development mode > should catch it in development mode
Expand output

● Catches Missing getStaticProps › development mode › should catch it in development mode

FetchError: request to http://localhost:35131/hello failed, reason: connect ECONNREFUSED 127.0.0.1:35131

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

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

pnpm test test/integration/dynamic-route-rename/test/index.test.js

  • Dynamic route rename casing > should not throw error when changing casing of dynamic route file
Expand output

● Dynamic route rename casing › should not throw error when changing casing of dynamic route file

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

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

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

pnpm test test/integration/dynamic-require/test/index.test.js

  • Dynamic require > should not throw error when dynamic require is used
Expand output

● Dynamic require › should not throw error when dynamic require is used

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

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

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

pnpm test test/integration/client-navigation-a11y/test/index.test.js (turbopack)

  • Client Navigation accessibility > > should not have the initial route announced
  • Client Navigation accessibility > > has aria-live="assertive" and role="alert"
  • Client Navigation accessibility > > There is a title and a h1 tag > has the innerText equal to the value of h1
  • Client Navigation accessibility > > There is a title but no h1 tag > has the innerText equal to the value of document.title
  • Client Navigation accessibility > > There is no title and no h1 tag > has the innerText equal to the value of the pathname
  • Client Navigation accessibility > > There is no title but a h1 tag > has the innerText equal to the value of h1
Expand output

● Client Navigation accessibility › › should not have the initial route announced

FetchError: request to http://localhost:36681/page-with-h1-and-title,%20/page-with-h1,%20/page-with-title,%20/page-without-h1-or-title failed, reason: connect ECONNREFUSED 127.0.0.1:36681

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● Client Navigation accessibility › › has aria-live="assertive" and role="alert"

FetchError: request to http://localhost:36681/page-with-h1-and-title,%20/page-with-h1,%20/page-with-title,%20/page-without-h1-or-title failed, reason: connect ECONNREFUSED 127.0.0.1:36681

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● Client Navigation accessibility › › There is a title but no h1 tag › has the innerText equal to the value of document.title

FetchError: request to http://localhost:36681/page-with-h1-and-title,%20/page-with-h1,%20/page-with-title,%20/page-without-h1-or-title failed, reason: connect ECONNREFUSED 127.0.0.1:36681

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● Client Navigation accessibility › › There is no title but a h1 tag › has the innerText equal to the value of h1

FetchError: request to http://localhost:36681/page-with-h1-and-title,%20/page-with-h1,%20/page-with-title,%20/page-without-h1-or-title failed, reason: connect ECONNREFUSED 127.0.0.1:36681

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● Client Navigation accessibility › › There is a title and a h1 tag › has the innerText equal to the value of h1

FetchError: request to http://localhost:36681/page-with-h1-and-title,%20/page-with-h1,%20/page-with-title,%20/page-without-h1-or-title failed, reason: connect ECONNREFUSED 127.0.0.1:36681

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● Client Navigation accessibility › › There is no title and no h1 tag › has the innerText equal to the value of the pathname

FetchError: request to http://localhost:36681/page-with-h1-and-title,%20/page-with-h1,%20/page-with-title,%20/page-without-h1-or-title failed, reason: connect ECONNREFUSED 127.0.0.1:36681

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

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

pnpm test test/integration/compression/test/index.test.js (turbopack)

  • Compression > should compress responses by default
Expand output

● Compression › should compress responses by default

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

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

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

pnpm test test/integration/api-catch-all/test/index.test.js

  • API routes > dev support > should return data when catch-all
  • API routes > dev support > should return redirect when catch-all with index and trailing slash
  • API routes > dev support > should return data when catch-all with index and trailing slash
  • API routes > dev support > should return data when catch-all with index and no trailing slash
  • API routes > production mode > should return data when catch-all
  • API routes > production mode > should return redirect when catch-all with index and trailing slash
  • API routes > production mode > should return data when catch-all with index and trailing slash
  • API routes > production mode > should return data when catch-all with index and no trailing slash
Expand output

● API routes › dev support › should return data when catch-all

FetchError: request to http://localhost:35075/api/users/1 failed, reason: connect ECONNREFUSED 127.0.0.1:35075

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● API routes › dev support › should return redirect when catch-all with index and trailing slash

FetchError: request to http://localhost:35075/api/users/ failed, reason: connect ECONNREFUSED 127.0.0.1:35075

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● API routes › dev support › should return data when catch-all with index and trailing slash

FetchError: request to http://localhost:35075/api/users/ failed, reason: connect ECONNREFUSED 127.0.0.1:35075

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● API routes › dev support › should return data when catch-all with index and no trailing slash

FetchError: request to http://localhost:35075/api/users failed, reason: connect ECONNREFUSED 127.0.0.1:35075

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● API routes › production mode › should return data when catch-all

FetchError: request to http://localhost:33381/api/users/1 failed, reason: connect ECONNREFUSED 127.0.0.1:33381

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● API routes › production mode › should return redirect when catch-all with index and trailing slash

FetchError: request to http://localhost:33381/api/users/ failed, reason: connect ECONNREFUSED 127.0.0.1:33381

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● API routes › production mode › should return data when catch-all with index and trailing slash

FetchError: request to http://localhost:33381/api/users/ failed, reason: connect ECONNREFUSED 127.0.0.1:33381

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● API routes › production mode › should return data when catch-all with index and no trailing slash

FetchError: request to http://localhost:33381/api/users failed, reason: connect ECONNREFUSED 127.0.0.1:33381

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

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

pnpm test test/integration/config/test/index.test.js (turbopack)

  • Configuration > should disable X-Powered-By header support
  • Configuration > renders server config on the server only
  • Configuration > renders public config on the server only
  • Configuration > correctly imports a package that defines module but no main in package.json
  • Configuration > should have config available on the client
Expand output

● Configuration › should disable X-Powered-By header support

FetchError: request to http://localhost:39017/next-config failed, reason: connect ECONNREFUSED 127.0.0.1:39017

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● Configuration › renders server config on the server only

FetchError: request to http://localhost:39017/next-config failed, reason: connect ECONNREFUSED 127.0.0.1:39017

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● Configuration › renders public config on the server only

FetchError: request to http://localhost:39017/next-config failed, reason: connect ECONNREFUSED 127.0.0.1:39017

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● Configuration › correctly imports a package that defines module but no main in package.json

FetchError: request to http://localhost:39017/next-config failed, reason: connect ECONNREFUSED 127.0.0.1:39017

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

● Configuration › should have config available on the client

FetchError: request to http://localhost:39017/next-config failed, reason: connect ECONNREFUSED 127.0.0.1:39017

  at ClientRequest.<anonymous> (../node_modules/.pnpm/[email protected][email protected]/node_modules/node-fetch/lib/index.js:1491:11)

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

pnpm test test/integration/app-document-style-fragment/test/index.test.js (turbopack)

  • Custom Document Fragment Styles > production mode > correctly adds styles from fragment styles key
Expand output

● Custom Document Fragment Styles › production mode › correctly adds styles from fragment styles key

TypeError: Cannot read properties of undefined (reading 'define')

  33 | // TODO: Remove this once "send" has updated the "mime", or next.js use custom version of "mime"
  34 | // Although "mime" has already add avif in version 2.4.7, "send" is still using [email protected]
> 35 | _send.default.mime.define({
     |                    ^
  36 |     'image/avif': [
  37 |         'avif'
  38 |     ],

  at Object.<anonymous> (../packages/next/dist/server/serve-static.js:35:20)
  at Object.<anonymous> (../packages/next/dist/server/lib/router-server.js:17:22)
  at Object.<anonymous> (../packages/next/dist/server/lib/start-server.js:37:23)
  at NextCustomServer.prepare (../packages/next/dist/server/next.js:274:40)
  at startApp (lib/next-test-utils.ts:683:15)
  at Object.<anonymous> (integration/app-document-style-fragment/test/index.test.js:27:56)

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

pnpm test-start test/e2e/app-dir/app-basepath/index.test.ts

  • app dir - basepath > should successfully hard navigate from pages -> app
  • app dir - basepath > should support basePath
  • app dir - basepath > should support Link with basePath prefixed
  • app dir - basepath > should prefix segment metadata og image with basePath and pathname
  • app dir - basepath > should prefix manifest with basePath
  • app dir - basepath > should prefix redirect() with basePath
  • app dir - basepath > should render usePathname without the basePath
  • app dir - basepath > should handle redirect in dynamic in suspense boundary routes with basePath
  • app dir - basepath > should only make a single RSC call to the current page (/base/refresh)
  • app dir - basepath > should only make a single RSC call to the current page (/base/refresh?foo=bar)
  • app dir - basepath > should properly stream an internal server action redirect() with a relative URL
  • app dir - basepath > should properly stream an internal server action redirect() with a absolute URL
  • app dir - basepath > should redirect externally when encountering absolute URLs on the same host outside the basePath
Expand output

● app dir - basepath › should successfully hard navigate from pages -> app

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir - basepath › should support basePath

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir - basepath › should support Link with basePath prefixed

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir - basepath › should prefix segment metadata og image with basePath and pathname

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir - basepath › should prefix manifest with basePath

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir - basepath › should prefix redirect() with basePath

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir - basepath › should render usePathname without the basePath

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir - basepath › should handle redirect in dynamic in suspense boundary routes with basePath

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir - basepath › should only make a single RSC call to the current page (/base/refresh)

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir - basepath › should only make a single RSC call to the current page (/base/refresh?foo=bar)

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir - basepath › should properly stream an internal server action redirect() with a relative URL

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir - basepath › should properly stream an internal server action redirect() with a absolute URL

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app dir - basepath › should redirect externally when encountering absolute URLs on the same host outside the basePath

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

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

pnpm test-start test/e2e/app-dir/app-esm-js/index.test.ts

  • app-dir - esm js extension > should be able to render nextjs api in app router
  • app-dir - esm js extension > should be able to use nextjs api in pages router
  • app-dir - esm js extension > should support next/og image
Expand output

● app-dir - esm js extension › should be able to render nextjs api in app router

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app-dir - esm js extension › should be able to use nextjs api in pages router

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app-dir - esm js extension › should support next/og image

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

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

pnpm test-start test/e2e/app-dir/app-edge-root-layout/index.test.ts

  • app-dir edge runtime root layout > should not emit metadata files into bad paths
  • app-dir edge runtime root layout > should mark static contain metadata routes as edge functions
Expand output

● app-dir edge runtime root layout › should not emit metadata files into bad paths

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

● app-dir edge runtime root layout › should mark static contain metadata routes as edge functions

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)

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

pnpm test-dev test/development/app-dir/dynamic-io-dev-warmup/dynamic-io.dev-warmup.test.ts

  • dynamic-io-dev-warmup > logs with Prerender or Server environment depending based on whether the timing of when the log runs relative to this environment boundary
Expand output

● dynamic-io-dev-warmup › logs with Prerender or Server environment depending based on whether the timing of when the log runs relative to this environment boundary

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/dynamic-io-dev-warmup/dynamic-io.dev-warmup.test.ts:4:33
  at Object.describe (development/app-dir/dynamic-io-dev-warmup/dynamic-io.dev-warmup.test.ts:3:1)

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

__NEXT_EXPERIMENTAL_PPR=true pnpm test-dev test/development/app-dir/async-request-warnings/async-request-warnings.test.ts (PPR)

  • dynamic-requests warnings > warnings on sync cookie access
  • dynamic-requests warnings > warnings on sync draftMode access
  • dynamic-requests warnings > warnings on sync headers access
  • dynamic-requests warnings > warnings on sync params access
  • dynamic-requests warnings > warnings on sync searchParams access
  • dynamic-requests warnings > no warnings > should have no warnings on normal rsc page without accessing params
  • dynamic-requests warnings > no warnings > should only have hydration warnings on hydration mismatch page without accessing params
Expand output

● dynamic-requests warnings › warnings on sync cookie access

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/async-request-warnings/async-request-warnings.test.ts:4:33
  at Object.describe (development/app-dir/async-request-warnings/async-request-warnings.test.ts:3:1)

● dynamic-requests warnings › warnings on sync draftMode access

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/async-request-warnings/async-request-warnings.test.ts:4:33
  at Object.describe (development/app-dir/async-request-warnings/async-request-warnings.test.ts:3:1)

● dynamic-requests warnings › warnings on sync headers access

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/async-request-warnings/async-request-warnings.test.ts:4:33
  at Object.describe (development/app-dir/async-request-warnings/async-request-warnings.test.ts:3:1)

● dynamic-requests warnings › warnings on sync params access

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/async-request-warnings/async-request-warnings.test.ts:4:33
  at Object.describe (development/app-dir/async-request-warnings/async-request-warnings.test.ts:3:1)

● dynamic-requests warnings › warnings on sync searchParams access

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/async-request-warnings/async-request-warnings.test.ts:4:33
  at Object.describe (development/app-dir/async-request-warnings/async-request-warnings.test.ts:3:1)

● dynamic-requests warnings › no warnings › should have no warnings on normal rsc page without accessing params

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/async-request-warnings/async-request-warnings.test.ts:4:33
  at Object.describe (development/app-dir/async-request-warnings/async-request-warnings.test.ts:3:1)

● dynamic-requests warnings › no warnings › should only have hydration warnings on hydration mismatch page without accessing params

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/async-request-warnings/async-request-warnings.test.ts:4:33
  at Object.describe (development/app-dir/async-request-warnings/async-request-warnings.test.ts:3:1)

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

pnpm test-start-turbo test/e2e/app-dir/actions-allowed-origins/app-action-disallowed-origins.test.ts (turbopack)

  • app-dir action disallowed origins > should error if x-forwarded-host does not match the origin
Expand output

● app-dir action disallowed origins › should error if x-forwarded-host does not match the origin

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions-allowed-origins/app-action-disallowed-origins.test.ts:6:42
  at Object.describe (e2e/app-dir/actions-allowed-origins/app-action-disallowed-origins.test.ts:5:1)

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

__NEXT_EXPERIMENTAL_PPR=true pnpm test-dev test/development/app-dir/owner-stack-invalid-element-type/owner-stack-invalid-element-type.test.ts (PPR)

  • app-dir - owner-stack-invalid-element-type > should catch invalid element from a browser only component
  • app-dir - owner-stack-invalid-element-type > should catch invalid element from a rsc component
  • app-dir - owner-stack-invalid-element-type > should catch invalid element from on ssr client component
Expand output

● app-dir - owner-stack-invalid-element-type › should catch invalid element from a browser only component

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/owner-stack-invalid-element-type/owner-stack-invalid-element-type.test.ts:4:33
  at Object.describe (development/app-dir/owner-stack-invalid-element-type/owner-stack-invalid-element-type.test.ts:3:1)

● app-dir - owner-stack-invalid-element-type › should catch invalid element from a rsc component

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/owner-stack-invalid-element-type/owner-stack-invalid-element-type.test.ts:4:33
  at Object.describe (development/app-dir/owner-stack-invalid-element-type/owner-stack-invalid-element-type.test.ts:3:1)

● app-dir - owner-stack-invalid-element-type › should catch invalid element from on ssr client component

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/owner-stack-invalid-element-type/owner-stack-invalid-element-type.test.ts:4:33
  at Object.describe (development/app-dir/owner-stack-invalid-element-type/owner-stack-invalid-element-type.test.ts:3:1)

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

__NEXT_EXPERIMENTAL_PPR=true pnpm test-dev test/e2e/app-dir/app-fetch-deduping-errors/app-fetch-deduping-errors.test.ts (PPR)

  • app-fetch-errors > should still successfully render when a fetch request that acquires a cache lock errors
Expand output

● app-fetch-errors › should still successfully render when a fetch request that acquires a cache lock errors

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-fetch-deduping-errors/app-fetch-deduping-errors.test.ts:4:33
  at Object.describe (e2e/app-dir/app-fetch-deduping-errors/app-fetch-deduping-errors.test.ts:3:1)

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

pnpm test-start-turbo test/e2e/app-dir/app-prefetch-false/app-prefetch-false.test.ts (turbopack)

  • app-prefetch-false > should avoid double-fetching when optimistic navigation fails
Expand output

● app-prefetch-false › should avoid double-fetching when optimistic navigation fails

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-prefetch-false/app-prefetch-false.test.ts:30:44
  at Object.describe (e2e/app-dir/app-prefetch-false/app-prefetch-false.test.ts:29:1)

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

pnpm test-dev test/development/app-dir/app-routes-error/index.test.ts

  • app-dir - app routes errors > bad lowercase exports > should print an error when using lowercase "get" in dev
  • app-dir - app routes errors > bad lowercase exports > should print an error when using lowercase "head" in dev
  • app-dir - app routes errors > bad lowercase exports > should print an error when using lowercase "options" in dev
  • app-dir - app routes errors > bad lowercase exports > should print an error when using lowercase "post" in dev
  • app-dir - app routes errors > bad lowercase exports > should print an error when using lowercase "put" in dev
  • app-dir - app routes errors > bad lowercase exports > should print an error when using lowercase "delete" in dev
  • app-dir - app routes errors > bad lowercase exports > should print an error when using lowercase "patch" in dev
Expand output

● app-dir - app routes errors › bad lowercase exports › should print an error when using lowercase "get" in dev

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/app-routes-error/index.test.ts:5:33
  at Object.describe (development/app-dir/app-routes-error/index.test.ts:4:1)

● app-dir - app routes errors › bad lowercase exports › should print an error when using lowercase "head" in dev

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/app-routes-error/index.test.ts:5:33
  at Object.describe (development/app-dir/app-routes-error/index.test.ts:4:1)

● app-dir - app routes errors › bad lowercase exports › should print an error when using lowercase "options" in dev

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/app-routes-error/index.test.ts:5:33
  at Object.describe (development/app-dir/app-routes-error/index.test.ts:4:1)

● app-dir - app routes errors › bad lowercase exports › should print an error when using lowercase "post" in dev

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/app-routes-error/index.test.ts:5:33
  at Object.describe (development/app-dir/app-routes-error/index.test.ts:4:1)

● app-dir - app routes errors › bad lowercase exports › should print an error when using lowercase "put" in dev

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/app-routes-error/index.test.ts:5:33
  at Object.describe (development/app-dir/app-routes-error/index.test.ts:4:1)

● app-dir - app routes errors › bad lowercase exports › should print an error when using lowercase "delete" in dev

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/app-routes-error/index.test.ts:5:33
  at Object.describe (development/app-dir/app-routes-error/index.test.ts:4:1)

● app-dir - app routes errors › bad lowercase exports › should print an error when using lowercase "patch" in dev

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/app-routes-error/index.test.ts:5:33
  at Object.describe (development/app-dir/app-routes-error/index.test.ts:4:1)

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

pnpm test-start-turbo test/e2e/app-dir/actions-navigation/index.test.ts (turbopack)

  • app-dir action handling > should handle actions correctly after navigation / redirection events
  • app-dir action handling > should handle actions correctly after following a relative link
Expand output

● app-dir action handling › should handle actions correctly after navigation / redirection events

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions-navigation/index.test.ts:5:33
  at Object.describe (e2e/app-dir/actions-navigation/index.test.ts:4:1)

● app-dir action handling › should handle actions correctly after following a relative link

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions-navigation/index.test.ts:5:33
  at Object.describe (e2e/app-dir/actions-navigation/index.test.ts:4:1)

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

pnpm test-start-turbo test/e2e/app-dir/app-catch-all-optional/app-catch-all-optional.test.ts (turbopack)

  • app-catch-all-optional > should handle optional catchall
  • app-catch-all-optional > should handle optional catchall with no params
Expand output

● app-catch-all-optional › should handle optional catchall

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-catch-all-optional/app-catch-all-optional.test.ts:4:33
  at Object.describe (e2e/app-dir/app-catch-all-optional/app-catch-all-optional.test.ts:3:1)

● app-catch-all-optional › should handle optional catchall with no params

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-catch-all-optional/app-catch-all-optional.test.ts:4:33
  at Object.describe (e2e/app-dir/app-catch-all-optional/app-catch-all-optional.test.ts:3:1)

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

pnpm test-start-turbo test/e2e/app-dir/app-simple-routes/app-simple-routes.test.ts (turbopack)

  • app-simple-routes > works with simple routes > renders a node route
  • app-simple-routes > works with simple routes > renders a edge route
Expand output

● app-simple-routes › works with simple routes › renders a node route

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-simple-routes/app-simple-routes.test.ts:6:33
  at Object.describe (e2e/app-dir/app-simple-routes/app-simple-routes.test.ts:5:1)

● app-simple-routes › works with simple routes › renders a edge route

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-simple-routes/app-simple-routes.test.ts:6:33
  at Object.describe (e2e/app-dir/app-simple-routes/app-simple-routes.test.ts:5:1)

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

pnpm test-dev test/development/basic/next-dynamic/next-dynamic-custom-document.test.ts

  • next/dynamic > Dynamic import > Multiple modules > should only include the rendered module script tag
  • next/dynamic > Dynamic import > Multiple modules > should only load the rendered module in the browser
  • next/dynamic > Dynamic import > Multiple modules > should only render one bundle if component is used multiple times
  • next/dynamic > Dynamic import > custom chunkfilename > should render the correct filename
  • next/dynamic > Dynamic import > custom chunkfilename > should render the component on client side
  • next/dynamic > Dynamic import > custom loading > should render custom loading on the server side when ssr:false and loading is provided
  • next/dynamic > Dynamic import > custom loading > should render the component on client side
  • next/dynamic > Dynamic import > default behavior > should render dynamic import components
  • next/dynamic > Dynamic import > default behavior > should render dynamic import components using a function as first parameter
  • next/dynamic > Dynamic import > default behavior > should render even there are no physical chunk exists
  • next/dynamic > Dynamic import > default behavior > should SSR nested dynamic components and skip nonSSR ones
  • next/dynamic > Dynamic import > default behavior > should hydrate nested chunks
  • next/dynamic > Dynamic import > default behavior > should render the component Head content
  • next/dynamic > Dynamic import > ssr:false option > should not render loading on the server side
  • next/dynamic > Dynamic import > ssr:false option > should render the component on client side
  • next/dynamic > Dynamic import > ssr:false option > should import and render the ESM module correctly on client side
  • next/dynamic > Dynamic import > ssr:true option > Should render the component on the server side
  • next/dynamic > Dynamic import > ssr:true option > should render the component on client side
Expand output

● next/dynamic › Dynamic import › default behavior › should render dynamic import components

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  32 |   let next: NextInstance
  33 |
> 34 |   beforeAll(async () => {
     |   ^
  35 |     next = await createNext({
  36 |       files: {
  37 |         [`${srcPrefix}/components`]: new FileRef(join(__dirname, 'components')),

  at beforeAll (development/basic/next-dynamic/next-dynamic.test.ts:34:3)
  at Object.describe (development/basic/next-dynamic/next-dynamic.test.ts:31:1)
  at Object.require (development/basic/next-dynamic/next-dynamic-custom-document.test.ts:2:1)

● next/dynamic › Dynamic import › default behavior › should render dynamic import components using a function as first parameter

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  32 |   let next: NextInstance
  33 |
> 34 |   beforeAll(async () => {
     |   ^
  35 |     next = await createNext({
  36 |       files: {
  37 |         [`${srcPrefix}/components`]: new FileRef(join(__dirname, 'components')),

  at beforeAll (development/basic/next-dynamic/next-dynamic.test.ts:34:3)
  at Object.describe (development/basic/next-dynamic/next-dynamic.test.ts:31:1)
  at Object.require (development/basic/next-dynamic/next-dynamic-custom-document.test.ts:2:1)

● next/dynamic › Dynamic import › default behavior › should render even there are no physical chunk exists

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  32 |   let next: NextInstance
  33 |
> 34 |   beforeAll(async () => {
     |   ^
  35 |     next = await createNext({
  36 |       files: {
  37 |         [`${srcPrefix}/components`]: new FileRef(join(__dirname, 'components')),

  at beforeAll (development/basic/next-dynamic/next-dynamic.test.ts:34:3)
  at Object.describe (development/basic/next-dynamic/next-dynamic.test.ts:31:1)
  at Object.require (development/basic/next-dynamic/next-dynamic-custom-document.test.ts:2:1)

● next/dynamic › Dynamic import › default behavior › should SSR nested dynamic components and skip nonSSR ones

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  32 |   let next: NextInstance
  33 |
> 34 |   beforeAll(async () => {
     |   ^
  35 |     next = await createNext({
  36 |       files: {
  37 |         [`${srcPrefix}/components`]: new FileRef(join(__dirname, 'components')),

  at beforeAll (development/basic/next-dynamic/next-dynamic.test.ts:34:3)
  at Object.describe (development/basic/next-dynamic/next-dynamic.test.ts:31:1)
  at Object.require (development/basic/next-dynamic/next-dynamic-custom-document.test.ts:2:1)

● next/dynamic › Dynamic import › default behavior › should hydrate nested chunks

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  32 |   let next: NextInstance
  33 |
> 34 |   beforeAll(async () => {
     |   ^
  35 |     next = await createNext({
  36 |       files: {
  37 |         [`${srcPrefix}/components`]: new FileRef(join(__dirname, 'components')),

  at beforeAll (development/basic/next-dynamic/next-dynamic.test.ts:34:3)
  at Object.describe (development/basic/next-dynamic/next-dynamic.test.ts:31:1)
  at Object.require (development/basic/next-dynamic/next-dynamic-custom-document.test.ts:2:1)

● next/dynamic › Dynamic import › default behavior › should render the component Head content

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  32 |   let next: NextInstance
  33 |
> 34 |   beforeAll(async () => {
     |   ^
  35 |     next = await createNext({
  36 |       files: {
  37 |         [`${srcPrefix}/components`]: new FileRef(join(__dirname, 'components')),

  at beforeAll (development/basic/next-dynamic/next-dynamic.test.ts:34:3)
  at Object.describe (development/basic/next-dynamic/next-dynamic.test.ts:31:1)
  at Object.require (development/basic/next-dynamic/next-dynamic-custom-document.test.ts:2:1)

● next/dynamic › Dynamic import › ssr:false option › should not render loading on the server side

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  32 |   let next: NextInstance
  33 |
> 34 |   beforeAll(async () => {
     |   ^
  35 |     next = await createNext({
  36 |       files: {
  37 |         [`${srcPrefix}/components`]: new FileRef(join(__dirname, 'components')),

  at beforeAll (development/basic/next-dynamic/next-dynamic.test.ts:34:3)
  at Object.describe (development/basic/next-dynamic/next-dynamic.test.ts:31:1)
  at Object.require (development/basic/next-dynamic/next-dynamic-custom-document.test.ts:2:1)

● next/dynamic › Dynamic import › ssr:false option › should render the component on client side

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  32 |   let next: NextInstance
  33 |
> 34 |   beforeAll(async () => {
     |   ^
  35 |     next = await createNext({
  36 |       files: {
  37 |         [`${srcPrefix}/components`]: new FileRef(join(__dirname, 'components')),

  at beforeAll (development/basic/next-dynamic/next-dynamic.test.ts:34:3)
  at Object.describe (development/basic/next-dynamic/next-dynamic.test.ts:31:1)
  at Object.require (development/basic/next-dynamic/next-dynamic-custom-document.test.ts:2:1)

● next/dynamic › Dynamic import › ssr:false option › should import and render the ESM module correctly on client side

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  32 |   let next: NextInstance
  33 |
> 34 |   beforeAll(async () => {
     |   ^
  35 |     next = await createNext({
  36 |       files: {
  37 |         [`${srcPrefix}/components`]: new FileRef(join(__dirname, 'components')),

  at beforeAll (development/basic/next-dynamic/next-dynamic.test.ts:34:3)
  at Object.describe (development/basic/next-dynamic/next-dynamic.test.ts:31:1)
  at Object.require (development/basic/next-dynamic/next-dynamic-custom-document.test.ts:2:1)

● next/dynamic › Dynamic import › ssr:true option › Should render the component on the server side

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  32 |   let next: NextInstance
  33 |
> 34 |   beforeAll(async () => {
     |   ^
  35 |     next = await createNext({
  36 |       files: {
  37 |         [`${srcPrefix}/components`]: new FileRef(join(__dirname, 'components')),

  at beforeAll (development/basic/next-dynamic/next-dynamic.test.ts:34:3)
  at Object.describe (development/basic/next-dynamic/next-dynamic.test.ts:31:1)
  at Object.require (development/basic/next-dynamic/next-dynamic-custom-document.test.ts:2:1)

● next/dynamic › Dynamic import › ssr:true option › should render the component on client side

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  32 |   let next: NextInstance
  33 |
> 34 |   beforeAll(async () => {
     |   ^
  35 |     next = await createNext({
  36 |       files: {
  37 |         [`${srcPrefix}/components`]: new FileRef(join(__dirname, 'components')),

  at beforeAll (development/basic/next-dynamic/next-dynamic.test.ts:34:3)
  at Object.describe (development/basic/next-dynamic/next-dynamic.test.ts:31:1)
  at Object.require (development/basic/next-dynamic/next-dynamic-custom-document.test.ts:2:1)

● next/dynamic › Dynamic import › custom chunkfilename › should render the correct filename

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  32 |   let next: NextInstance
  33 |
> 34 |   beforeAll(async () => {
     |   ^
  35 |     next = await createNext({
  36 |       files: {
  37 |         [`${srcPrefix}/components`]: new FileRef(join(__dirname, 'components')),

  at beforeAll (development/basic/next-dynamic/next-dynamic.test.ts:34:3)
  at Object.describe (development/basic/next-dynamic/next-dynamic.test.ts:31:1)
  at Object.require (development/basic/next-dynamic/next-dynamic-custom-document.test.ts:2:1)

● next/dynamic › Dynamic import › custom chunkfilename › should render the component on client side

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  32 |   let next: NextInstance
  33 |
> 34 |   beforeAll(async () => {
     |   ^
  35 |     next = await createNext({
  36 |       files: {
  37 |         [`${srcPrefix}/components`]: new FileRef(join(__dirname, 'components')),

  at beforeAll (development/basic/next-dynamic/next-dynamic.test.ts:34:3)
  at Object.describe (development/basic/next-dynamic/next-dynamic.test.ts:31:1)
  at Object.require (development/basic/next-dynamic/next-dynamic-custom-document.test.ts:2:1)

● next/dynamic › Dynamic import › custom loading › should render custom loading on the server side when ssr:false and loading is provided

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  32 |   let next: NextInstance
  33 |
> 34 |   beforeAll(async () => {
     |   ^
  35 |     next = await createNext({
  36 |       files: {
  37 |         [`${srcPrefix}/components`]: new FileRef(join(__dirname, 'components')),

  at beforeAll (development/basic/next-dynamic/next-dynamic.test.ts:34:3)
  at Object.describe (development/basic/next-dynamic/next-dynamic.test.ts:31:1)
  at Object.require (development/basic/next-dynamic/next-dynamic-custom-document.test.ts:2:1)

● next/dynamic › Dynamic import › custom loading › should render the component on client side

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  32 |   let next: NextInstance
  33 |
> 34 |   beforeAll(async () => {
     |   ^
  35 |     next = await createNext({
  36 |       files: {
  37 |         [`${srcPrefix}/components`]: new FileRef(join(__dirname, 'components')),

  at beforeAll (development/basic/next-dynamic/next-dynamic.test.ts:34:3)
  at Object.describe (development/basic/next-dynamic/next-dynamic.test.ts:31:1)
  at Object.require (development/basic/next-dynamic/next-dynamic-custom-document.test.ts:2:1)

● next/dynamic › Dynamic import › Multiple modules › should only include the rendered module script tag

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  32 |   let next: NextInstance
  33 |
> 34 |   beforeAll(async () => {
     |   ^
  35 |     next = await createNext({
  36 |       files: {
  37 |         [`${srcPrefix}/components`]: new FileRef(join(__dirname, 'components')),

  at beforeAll (development/basic/next-dynamic/next-dynamic.test.ts:34:3)
  at Object.describe (development/basic/next-dynamic/next-dynamic.test.ts:31:1)
  at Object.require (development/basic/next-dynamic/next-dynamic-custom-document.test.ts:2:1)

● next/dynamic › Dynamic import › Multiple modules › should only load the rendered module in the browser

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  32 |   let next: NextInstance
  33 |
> 34 |   beforeAll(async () => {
     |   ^
  35 |     next = await createNext({
  36 |       files: {
  37 |         [`${srcPrefix}/components`]: new FileRef(join(__dirname, 'components')),

  at beforeAll (development/basic/next-dynamic/next-dynamic.test.ts:34:3)
  at Object.describe (development/basic/next-dynamic/next-dynamic.test.ts:31:1)
  at Object.require (development/basic/next-dynamic/next-dynamic-custom-document.test.ts:2:1)

● next/dynamic › Dynamic import › Multiple modules › should only render one bundle if component is used multiple times

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  32 |   let next: NextInstance
  33 |
> 34 |   beforeAll(async () => {
     |   ^
  35 |     next = await createNext({
  36 |       files: {
  37 |         [`${srcPrefix}/components`]: new FileRef(join(__dirname, 'components')),

  at beforeAll (development/basic/next-dynamic/next-dynamic.test.ts:34:3)
  at Object.describe (development/basic/next-dynamic/next-dynamic.test.ts:31:1)
  at Object.require (development/basic/next-dynamic/next-dynamic-custom-document.test.ts:2:1)

● Test suite failed to run

TypeError: Cannot read properties of undefined (reading 'destroy')

  51 |     })
  52 |   })
> 53 |   afterAll(() => next.destroy())
     |                       ^
  54 |
  55 |   async function get$(path, query?: any) {
  56 |     const html = await renderViaHTTP(next.url, path, query)

  at Object.destroy (development/basic/next-dynamic/next-dynamic.test.ts:53:23)

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

pnpm test-start-turbo test/e2e/app-dir/actions/app-action-form-state-node-middleware.test.ts (turbopack)

  • app-dir action useActionState > should support submitting form state with JS
  • app-dir action useActionState > should support submitting form state without JS
  • app-dir action useActionState > should support hydrating the app from progressively enhanced form request
  • app-dir action useActionState > should send the action to the provided permalink with form state when JS disabled
Expand output

● app-dir action useActionState › should support submitting form state with JS

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action-form-state.test.ts:7:33
  at Object.describe (e2e/app-dir/actions/app-action-form-state.test.ts:6:1)
  at Object.require (e2e/app-dir/actions/app-action-form-state-node-middleware.test.ts:3:1)

● app-dir action useActionState › should support submitting form state without JS

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action-form-state.test.ts:7:33
  at Object.describe (e2e/app-dir/actions/app-action-form-state.test.ts:6:1)
  at Object.require (e2e/app-dir/actions/app-action-form-state-node-middleware.test.ts:3:1)

● app-dir action useActionState › should support hydrating the app from progressively enhanced form request

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action-form-state.test.ts:7:33
  at Object.describe (e2e/app-dir/actions/app-action-form-state.test.ts:6:1)
  at Object.require (e2e/app-dir/actions/app-action-form-state-node-middleware.test.ts:3:1)

● app-dir action useActionState › should send the action to the provided permalink with form state when JS disabled

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action-form-state.test.ts:7:33
  at Object.describe (e2e/app-dir/actions/app-action-form-state.test.ts:6:1)
  at Object.require (e2e/app-dir/actions/app-action-form-state-node-middleware.test.ts:3:1)

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

__NEXT_EXPERIMENTAL_PPR=true pnpm test-dev test/development/app-dir/error-overlay/async-client-component/async-client-component.test.ts (PPR)

  • app-dir - async-client-component > app router client component async module
  • app-dir - async-client-component > app router server component async module
Expand output

● app-dir - async-client-component › app router client component async module

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/error-overlay/async-client-component/async-client-component.test.ts:6:33
  at Object.describe (development/app-dir/error-overlay/async-client-component/async-client-component.test.ts:5:1)

● app-dir - async-client-component › app router server component async module

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/error-overlay/async-client-component/async-client-component.test.ts:6:33
  at Object.describe (development/app-dir/error-overlay/async-client-component/async-client-component.test.ts:5:1)

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

__NEXT_EXPERIMENTAL_PPR=true pnpm test-dev test/development/app-dir/dev-fetch-hmr/dev-fetch-hmr.test.ts (PPR)

  • dev-fetch-hmr > should retain module level fetch patching
Expand output

● dev-fetch-hmr › should retain module level fetch patching

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/dev-fetch-hmr/dev-fetch-hmr.test.ts:7:33
  at Object.describe (development/app-dir/dev-fetch-hmr/dev-fetch-hmr.test.ts:6:1)

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

pnpm test-start test/e2e/app-dir/metadata-edge/index.test.ts

  • app dir - Metadata API on the Edge runtime > should render OpenGraph image meta tag correctly
  • app dir - Metadata API on the Edge runtime > OG image route > should not bundle ImageResponse into the page worker
Expand output

● app dir - Metadata API on the Edge runtime › OG image route › should not bundle ImageResponse into the page worker

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)
  at ChildProcess.cp.emit (../node_modules/.pnpm/[email protected]/node_modules/cross-spawn/lib/enoent.js:34:29)

● app dir - Metadata API on the Edge runtime › should render OpenGraph image meta tag correctly

next build failed with code/signal 1

  106 |           if (code || signal)
  107 |             reject(
> 108 |               new Error(`next build failed with code/signal ${code || signal}`)
      |               ^
  109 |             )
  110 |           else resolve()
  111 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:108:15)
  at ChildProcess.cp.emit (../node_modules/.pnpm/[email protected]/node_modules/cross-spawn/lib/enoent.js:34:29)

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

pnpm test test/integration/rewrites-has-condition/test/index.test.js

  • rewrites has condition > development mode > should navigate to a simple rewrite without error
  • rewrites has condition > development mode > should navigate to a has rewrite without error
  • rewrites has condition > production mode > should navigate to a simple rewrite without error
  • rewrites has condition > production mode > should navigate to a has rewrite without error
Expand output

● rewrites has condition › development mode › should navigate to a simple rewrite without error

page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:62426/
Call log:
  - navigating to "http://localhost:62426/", waiting until "load"

  313 |     opts?.beforePageLoad?.(page)
  314 |
> 315 |     await page.goto(url, { waitUntil: 'load' })
      |                ^
  316 |   }
  317 |
  318 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:315:16)
  at webdriver (lib/next-webdriver.ts:143:3)
  at Object.<anonymous> (integration/rewrites-has-condition/test/index.test.js:20:21)

● rewrites has condition › development mode › should navigate to a has rewrite without error

page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:62426/
Call log:
  - navigating to "http://localhost:62426/", waiting until "load"

  313 |     opts?.beforePageLoad?.(page)
  314 |
> 315 |     await page.goto(url, { waitUntil: 'load' })
      |                ^
  316 |   }
  317 |
  318 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:315:16)
  at webdriver (lib/next-webdriver.ts:143:3)
  at Object.<anonymous> (integration/rewrites-has-condition/test/index.test.js:33:21)

● rewrites has condition › production mode › should navigate to a simple rewrite without error

page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:62444/
Call log:
  - navigating to "http://localhost:62444/", waiting until "load"

  313 |     opts?.beforePageLoad?.(page)
  314 |
> 315 |     await page.goto(url, { waitUntil: 'load' })
      |                ^
  316 |   }
  317 |
  318 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:315:16)
  at webdriver (lib/next-webdriver.ts:143:3)
  at Object.<anonymous> (integration/rewrites-has-condition/test/index.test.js:20:21)

● rewrites has condition › production mode › should navigate to a has rewrite without error

page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:62444/
Call log:
  - navigating to "http://localhost:62444/", waiting until "load"

  313 |     opts?.beforePageLoad?.(page)
  314 |
> 315 |     await page.goto(url, { waitUntil: 'load' })
      |                ^
  316 |   }
  317 |
  318 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:315:16)
  at webdriver (lib/next-webdriver.ts:143:3)
  at Object.<anonymous> (integration/rewrites-has-condition/test/index.test.js:33:21)

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

pnpm test-dev test/development/acceptance-app/undefined-default-export.test.ts

  • Undefined default export > should error if page component does not have default export
  • Undefined default export > should error if layout component does not have default export
  • Undefined default export > should error if not-found component does not have default export when trigger not-found boundary
  • Undefined default export > should error when page component export is not valid
  • Undefined default export > should error when page component export is not valid on initial load
Expand output

● Undefined default export › should error if page component does not have default export

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/acceptance-app/undefined-default-export.test.ts:6:33
  at Object.describe (development/acceptance-app/undefined-default-export.test.ts:5:1)

● Undefined default export › should error if layout component does not have default export

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/acceptance-app/undefined-default-export.test.ts:6:33
  at Object.describe (development/acceptance-app/undefined-default-export.test.ts:5:1)

● Undefined default export › should error if not-found component does not have default export when trigger not-found boundary

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/acceptance-app/undefined-default-export.test.ts:6:33
  at Object.describe (development/acceptance-app/undefined-default-export.test.ts:5:1)

● Undefined default export › should error when page component export is not valid

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/acceptance-app/undefined-default-export.test.ts:6:33
  at Object.describe (development/acceptance-app/undefined-default-export.test.ts:5:1)

● Undefined default export › should error when page component export is not valid on initial load

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/acceptance-app/undefined-default-export.test.ts:6:33
  at Object.describe (development/acceptance-app/undefined-default-export.test.ts:5:1)

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

pnpm test-start-turbo test/e2e/app-dir/actions-allowed-origins/app-action-allowed-origins.test.ts (turbopack)

  • app-dir action allowed origins > should pass if localhost is set as a safe origin
Expand output

● app-dir action allowed origins › should pass if localhost is set as a safe origin

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions-allowed-origins/app-action-allowed-origins.test.ts:6:42
  at Object.describe (e2e/app-dir/actions-allowed-origins/app-action-allowed-origins.test.ts:5:1)

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

pnpm test-start test/e2e/app-dir/actions/app-action.test.ts

  • app-dir action handling > should handle action correctly with middleware rewrite
  • app-dir action handling > should handle basic actions correctly
  • app-dir action handling > should report errors with bad inputs correctly
  • app-dir action handling > should propagate errors from a text/plain response to an error boundary
  • app-dir action handling > should trigger an error boundary for action responses with an invalid content-type
  • app-dir action handling > should support headers and cookies
  • app-dir action handling > should support setting cookies when redirecting (with javascript)
  • app-dir action handling > should support setting cookies when redirecting (no javascript)
  • app-dir action handling > should push new route when redirecting
  • app-dir action handling > should replace current route when redirecting with type set to replace
  • app-dir action handling > should support headers in client imported actions
  • app-dir action handling > should not log errors for non-action form POSTs
  • app-dir action handling > should support setting cookies in route handlers with the correct overrides
  • app-dir action handling > should support formData and redirect
  • app-dir action handling > should support .bind
  • app-dir action handling > should support chained .bind
  • app-dir action handling > should support notFound (javascript disabled)
  • app-dir action handling > should support notFound
  • app-dir action handling > should support uploading files
  • app-dir action handling > should support hoc auth wrappers
  • app-dir action handling > should support importing actions in client components
  • app-dir action handling > should support importing the same action module instance in both server and action layers
  • app-dir action handling > should not block navigation events while a server action is in flight
  • app-dir action handling > should not block router.back() while a server action is in flight
  • app-dir action handling > should trigger a refresh for a server action that gets discarded due to a navigation
  • app-dir action handling > should trigger a refresh for a server action that also dispatches a navigation event
  • app-dir action handling > should support next/dynamic with ssr: false
  • app-dir action handling > should support next/dynamic with ssr: false (edge)
  • app-dir action handling > should only submit action once when resubmitting an action after navigation
  • app-dir action handling > should handle actions executed in quick succession
  • app-dir action handling > should reset the form state when the action redirects to a page that contains the same form
  • app-dir action handling > should invalidate the client router cache if the redirect action triggers a revalidation
  • app-dir action handling > should reset the form state when the action redirects to itself
  • app-dir action handling > should 404 when POSTing an invalid server action
  • app-dir action handling > should log a warning when a server action is not found but an id is provided
  • app-dir action handling > should be possible to catch network errors
  • app-dir action handling > should be possible to catch regular errors
  • app-dir action handling > should keep action instances identical
  • app-dir action handling > should forward action request to a worker that contains the action handler (node)
  • app-dir action handling > should forward action request to a worker that contains the action handler (edge)
  • app-dir action handling > should not error when a forwarded action triggers a redirect (node)
  • app-dir action handling > should not error when a forwarded action triggers a redirect (edge)
  • app-dir action handling > should not expose action content in sourcemaps
  • app-dir action handling > should work with interception routes
  • app-dir action handling > Edge SSR > should handle basic actions correctly
  • app-dir action handling > Edge SSR > should return error response for hoc auth wrappers in edge runtime
  • app-dir action handling > Edge SSR > should handle calls to redirect() with a relative URL in a single pass
  • app-dir action handling > Edge SSR > should handle calls to redirect() with a absolute URL in a single pass
  • app-dir action handling > Edge SSR > should handle calls to redirect() with external URLs
  • app-dir action handling > Edge SSR > should allow cookie and header async storages
  • app-dir action handling > Edge SSR > should handle unicode search params
  • app-dir action handling > caching disabled by default > should use no-store as default for server action
  • app-dir action handling > caching disabled by default > should not override force-cache in server action
  • app-dir action handling > caching disabled by default > should not override revalidate in server action
  • app-dir action handling > encryption > should send encrypted values from the closed over closure
  • app-dir action handling > encryption > should be able to resolve other server actions and client components
  • app-dir action handling > fetch actions > should handle a fetch action initiated from a static page
  • app-dir action handling > fetch actions > should handle calls to redirect() with a relative URL in a single pass
  • app-dir action handling > fetch actions > should handle calls to redirect() with a absolute URL in a single pass
  • app-dir action handling > fetch actions > should handle calls to redirect() with external URLs
  • app-dir action handling > fetch actions > should handle redirects to routes that provide an invalid RSC response
  • app-dir action handling > fetch actions > should handle unstable_expirePath
  • app-dir action handling > fetch actions > should handle unstable_expireTag
  • app-dir action handling > fetch actions > should store revalidation data in the prefetch cache
  • app-dir action handling > fetch actions > should revalidate when cookies.set is called
  • app-dir action handling > fetch actions > should invalidate client cache on other routes when cookies.set is called
  • app-dir action handling > fetch actions > should revalidate when cookies.set is called in a client action
  • app-dir action handling > fetch actions > should invalidate client cache when tag is revalidated
  • app-dir action handling > fetch actions > should invalidate client cache when path is revalidated
  • app-dir action handling > redirects > redirects properly when server action handler uses redirect
  • app-dir action handling > redirects > redirects properly when server action handler uses permanentRedirect
  • app-dir action handling > redirects > displays searchParams correctly when redirecting with SearchParams
  • app-dir action handling > redirects > merges cookies correctly when redirecting
  • app-dir action handling > redirects > should not forward next-action header to a redirected RSC request
  • app-dir action handling > redirects > redirects properly when server action handler redirects with a 307 status code
  • app-dir action handling > redirects > redirects properly when server action handler redirects with a 308 status code
  • app-dir action handling > request body decoding > should correctly decode multi-byte characters in the request body (node)
  • app-dir action handling > request body decoding > should correctly decode multi-byte characters in the request body (edge)
  • app-dir action handling > server actions render client components > server component imported action > should support importing client components from actions
Expand output

● app-dir action handling › should handle action correctly with middleware rewrite

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should handle basic actions correctly

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should report errors with bad inputs correctly

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should propagate errors from a text/plain response to an error boundary

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should trigger an error boundary for action responses with an invalid content-type

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should support headers and cookies

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should support setting cookies when redirecting (with javascript)

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should support setting cookies when redirecting (no javascript)

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should push new route when redirecting

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should replace current route when redirecting with type set to replace

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should support headers in client imported actions

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should not log errors for non-action form POSTs

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should support setting cookies in route handlers with the correct overrides

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should support formData and redirect

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should support .bind

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should support chained .bind

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should support notFound (javascript disabled)

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should support notFound

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should support uploading files

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should support hoc auth wrappers

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should support importing actions in client components

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should support importing the same action module instance in both server and action layers

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should not block navigation events while a server action is in flight

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should not block router.back() while a server action is in flight

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should trigger a refresh for a server action that gets discarded due to a navigation

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should trigger a refresh for a server action that also dispatches a navigation event

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should support next/dynamic with ssr: false

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should support next/dynamic with ssr: false (edge)

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should only submit action once when resubmitting an action after navigation

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should handle actions executed in quick succession

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should reset the form state when the action redirects to a page that contains the same form

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should invalidate the client router cache if the redirect action triggers a revalidation

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should reset the form state when the action redirects to itself

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should 404 when POSTing an invalid server action

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should log a warning when a server action is not found but an id is provided

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should be possible to catch network errors

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should be possible to catch regular errors

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should keep action instances identical

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should forward action request to a worker that contains the action handler (node)

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should forward action request to a worker that contains the action handler (edge)

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should not error when a forwarded action triggers a redirect (node)

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should not error when a forwarded action triggers a redirect (edge)

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should not expose action content in sourcemaps

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › Edge SSR › should handle basic actions correctly

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › Edge SSR › should return error response for hoc auth wrappers in edge runtime

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › Edge SSR › should handle calls to redirect() with a relative URL in a single pass

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › Edge SSR › should handle calls to redirect() with a absolute URL in a single pass

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › Edge SSR › should handle calls to redirect() with external URLs

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › Edge SSR › should allow cookie and header async storages

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › Edge SSR › should handle unicode search params

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › fetch actions › should handle a fetch action initiated from a static page

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › fetch actions › should handle calls to redirect() with a relative URL in a single pass

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › fetch actions › should handle calls to redirect() with a absolute URL in a single pass

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › fetch actions › should handle calls to redirect() with external URLs

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › fetch actions › should handle redirects to routes that provide an invalid RSC response

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › fetch actions › should handle unstable_expirePath

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › fetch actions › should handle unstable_expireTag

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › fetch actions › should handle unstable_expireTag + redirect

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › fetch actions › should store revalidation data in the prefetch cache

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › fetch actions › should revalidate when cookies.set is called

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › fetch actions › should invalidate client cache on other routes when cookies.set is called

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › fetch actions › should revalidate when cookies.set is called in a client action

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › fetch actions › should invalidate client cache when tag is revalidated

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › fetch actions › should invalidate client cache when path is revalidated

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › should work with interception routes

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › encryption › should send encrypted values from the closed over closure

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › encryption › should be able to resolve other server actions and client components

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › redirects › redirects properly when server action handler uses redirect

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › redirects › redirects properly when server action handler uses permanentRedirect

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › redirects › displays searchParams correctly when redirecting with SearchParams

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › redirects › merges cookies correctly when redirecting

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › redirects › should not forward next-action header to a redirected RSC request

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › redirects › redirects properly when server action handler redirects with a 307 status code

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › redirects › redirects properly when server action handler redirects with a 308 status code

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › server actions render client components › server component imported action › should support importing client components from actions

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › server actions render client components › client component imported action › should support importing client components from actions

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › caching disabled by default › should use no-store as default for server action

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › caching disabled by default › should not override force-cache in server action

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › caching disabled by default › should not override revalidate in server action

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › request body decoding › should correctly decode multi-byte characters in the request body (node)

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

● app-dir action handling › request body decoding › should correctly decode multi-byte characters in the request body (edge)

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/actions/app-action.test.ts:21:18
  at Object.describe (e2e/app-dir/actions/app-action.test.ts:19:1)

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

__NEXT_EXPERIMENTAL_PPR=true pnpm test-start test/e2e/app-dir/app-routes-client-component/app-routes-client-component.test.ts (PPR)

  • referencing a client component in an app route > responds without error
Expand output

● referencing a client component in an app route › responds without error

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-routes-client-component/app-routes-client-component.test.ts:4:33
  at Object.describe (e2e/app-dir/app-routes-client-component/app-routes-client-component.test.ts:3:1)

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

__NEXT_EXPERIMENTAL_PPR=true pnpm test-start test/e2e/app-dir/dynamic-interception-route-revalidate/dynamic-interception-route-revalidate.test.ts (PPR)

  • dynamic-interception-route-revalidate > should refresh the dynamic intercepted route when the interception route is revalidated
Expand output

● dynamic-interception-route-revalidate › should refresh the dynamic intercepted route when the interception route is revalidated

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/dynamic-interception-route-revalidate/dynamic-interception-route-revalidate.test.ts:5:33
  at Object.describe (e2e/app-dir/dynamic-interception-route-revalidate/dynamic-interception-route-revalidate.test.ts:4:1)

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

pnpm test-start test/e2e/app-dir/actions/app-action-form-state.test.ts

  • app-dir alias > should handle typescript paths alias correctly
  • app-dir alias > should resolve css imports from outside with src folder presented
  • app-dir alias > should not contain installed react/react-dom version in client chunks
  • app-dir alias > should generate app-build-manifest correctly
Expand output

● app-dir alias › should handle typescript paths alias correctly

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-alias/app-alias.test.ts:4:55
  at Object.describe (e2e/app-dir/app-alias/app-alias.test.ts:3:1)

● app-dir alias › should resolve css imports from outside with src folder presented

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-alias/app-alias.test.ts:4:55
  at Object.describe (e2e/app-dir/app-alias/app-alias.test.ts:3:1)

● app-dir alias › should not contain installed react/react-dom version in client chunks

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-alias/app-alias.test.ts:4:55
  at Object.describe (e2e/app-dir/app-alias/app-alias.test.ts:3:1)

● app-dir alias › should generate app-build-manifest correctly

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-alias/app-alias.test.ts:4:55
  at Object.describe (e2e/app-dir/app-alias/app-alias.test.ts:3:1)

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

pnpm test-start test/e2e/app-dir/app-config-crossorigin/index.test.ts

  • app dir - crossOrigin config > skip in start mode
Expand output

● app dir - crossOrigin config › skip in start mode

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-config-crossorigin/index.test.ts:4:55
  at Object.describe (e2e/app-dir/app-config-crossorigin/index.test.ts:3:1)

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

__NEXT_EXPERIMENTAL_PPR=true pnpm test-start test/e2e/app-dir/app-inline-css/index.test.ts (PPR)

  • app dir - css - experimental inline css > Production only > should render page with correct styles
  • app dir - css - experimental inline css > Production only > should not return rsc payload with inlined style as a dynamic client nav
  • app dir - css - experimental inline css > Production only > should have only one style tag when navigating from page with inlining to page without inlining
Expand output

● app dir - css - experimental inline css › Production only › should render page with correct styles

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-inline-css/index.test.ts:3:44
  at Object.describe (e2e/app-dir/app-inline-css/index.test.ts:2:1)

● app dir - css - experimental inline css › Production only › should not return rsc payload with inlined style as a dynamic client nav

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-inline-css/index.test.ts:3:44
  at Object.describe (e2e/app-dir/app-inline-css/index.test.ts:2:1)

● app dir - css - experimental inline css › Production only › should have only one style tag when navigating from page with inlining to page without inlining

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-inline-css/index.test.ts:3:44
  at Object.describe (e2e/app-dir/app-inline-css/index.test.ts:2:1)

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

__NEXT_EXPERIMENTAL_PPR=true pnpm test-start test/e2e/app-dir/autoscroll-with-css-modules/index.test.ts (PPR)

  • router autoscrolling on navigation with css modules > vertical scroll when page imports css modules > should scroll to top of document when navigating between to pages without layout when
  • router autoscrolling on navigation with css modules > vertical scroll when page imports css modules > should scroll when clicking in JS
Expand output

● router autoscrolling on navigation with css modules › vertical scroll when page imports css modules › should scroll to top of document when navigating between to pages without layout when

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/autoscroll-with-css-modules/index.test.ts:5:33
  at Object.describe (e2e/app-dir/autoscroll-with-css-modules/index.test.ts:4:1)

● router autoscrolling on navigation with css modules › vertical scroll when page imports css modules › should scroll when clicking in JS

thrown: "Exceeded timeout of 120000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/autoscroll-with-css-modules/index.test.ts:5:33
  at Object.describe (e2e/app-dir/autoscroll-with-css-modules/index.test.ts:4:1)

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

pnpm test-dev-turbo test/development/app-dir/typed-env/typed-env-prod.test.ts (turbopack)

  • typed-env > should have env types from next config
Expand output

● typed-env › should have env types from next config

thrown: "Exceeded timeout of 240000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at development/app-dir/typed-env/typed-env-prod.test.ts:5:33
  at Object.describe (development/app-dir/typed-env/typed-env-prod.test.ts:4:1)

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

pnpm test-dev-turbo test/development/api-cors-with-rewrite/index.test.ts (turbopack)

  • Rewritten API Requests should pass OPTIONS requests to the api function > should pass OPTIONS requests to the api function
Expand output

● Rewritten API Requests should pass OPTIONS requests to the api function › should pass OPTIONS requests to the api function

thrown: "Exceeded timeout of 240000 ms for a hook.
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."

   6 |   let next: NextInstance
   7 |
>  8 |   beforeAll(async () => {
     |   ^
   9 |     next = await createNext({
  10 |       files: {
  11 |         'pages/api/some-endpoint.js': `

  at beforeAll (development/api-cors-with-rewrite/index.test.ts:8:3)
  at Object.describe (development/api-cors-with-rewrite/index.test.ts:5:1)

● Test suite failed to run

TypeError: Cannot read properties of undefined (reading 'destroy')

  32 |     })
  33 |   })
> 34 |   afterAll(() => next.destroy())
     |                       ^
  35 |
  36 |   it('should pass OPTIONS requests to the api function', async () => {
  37 |     const res = await fetchViaHTTP(next.url, '/some-endpoint', null, {

  at Object.destroy (development/api-cors-with-rewrite/index.test.ts:34:23)

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

pnpm test-dev-turbo test/development/acceptance-app/ReactRefreshLogBoxMisc.test.ts (turbopack)

  • ReactRefreshLogBox app > server-side only compilation errors
Expand output

● ReactRefreshLogBox app › server-side only compilation errors

Failed to start server after 10000ms, waiting for this log pattern: / ✓ Ready in /

  391 |     return setTimeout(() => {
  392 |       reject(
> 393 |         new Error(
      |         ^
  394 |           `Failed to start server after ${ms}ms, waiting for this log pattern: ${this.serverReadyPattern}`
  395 |         )
  396 |       )

  at Timeout._onTimeout (lib/next-modes/base.ts:393:9)

● Test suite failed to run

You must use `using` to create a sandbox, i.e., `await using sandbox = await createSandbox(`

  181 |     setImmediate(() => {
  182 |       if (!unwrappedByTypeScriptUsingKeyword) {
> 183 |         throw new Error(
      |               ^
  184 |           'You must use `using` to create a sandbox, i.e., `await using sandbox = await createSandbox(`'
  185 |         )
  186 |       }

  at Immediate.<anonymous> (lib/development-sandbox.ts:183:15)

● Test suite failed to run

thrown: "Exceeded timeout of 240000 ms for a hook.
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."

  257 |       next = await createNext(options)
  258 |     })
> 259 |     afterAll(async () => {
      |     ^
  260 |       // Gracefully destroy the instance if `createNext` success.
  261 |       // If next instance is not available, it's likely beforeAll hook failed and unnecessarily throws another error
  262 |       // by attempting to destroy on undefined.

  at afterAll (lib/e2e-utils/index.ts:259:5)
  at development/acceptance-app/ReactRefreshLogBoxMisc.test.ts:7:46
  at Object.describe (development/acceptance-app/ReactRefreshLogBoxMisc.test.ts:6:1)

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

pnpm test-dev test/e2e/app-dir/app-edge/app-edge.test.ts

  • app-dir edge SSR > should handle edge only routes
  • app-dir edge SSR > should retrieve cookies in a server component in the edge runtime
  • app-dir edge SSR > should treat process as object without polyfill in edge runtime
  • app-dir edge SSR > should handle /index routes correctly
  • app-dir edge SSR > should warn about the re-export of a pages runtime/preferredRegion config
  • app-dir edge SSR > should resolve module without error in edge runtime
  • app-dir edge SSR > should resolve client component without error
  • app-dir edge SSR > should handle edge rsc hmr
Expand output

● app-dir edge SSR › should handle edge only routes

thrown: "Exceeded timeout of 240000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-edge/app-edge.test.ts:5:42
  at Object.describe (e2e/app-dir/app-edge/app-edge.test.ts:4:1)

● app-dir edge SSR › should retrieve cookies in a server component in the edge runtime

thrown: "Exceeded timeout of 240000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-edge/app-edge.test.ts:5:42
  at Object.describe (e2e/app-dir/app-edge/app-edge.test.ts:4:1)

● app-dir edge SSR › should treat process as object without polyfill in edge runtime

thrown: "Exceeded timeout of 240000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-edge/app-edge.test.ts:5:42
  at Object.describe (e2e/app-dir/app-edge/app-edge.test.ts:4:1)

● app-dir edge SSR › should handle /index routes correctly

thrown: "Exceeded timeout of 240000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-edge/app-edge.test.ts:5:42
  at Object.describe (e2e/app-dir/app-edge/app-edge.test.ts:4:1)

● app-dir edge SSR › should warn about the re-export of a pages runtime/preferredRegion config

thrown: "Exceeded timeout of 240000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-edge/app-edge.test.ts:5:42
  at Object.describe (e2e/app-dir/app-edge/app-edge.test.ts:4:1)

● app-dir edge SSR › should resolve module without error in edge runtime

thrown: "Exceeded timeout of 240000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-edge/app-edge.test.ts:5:42
  at Object.describe (e2e/app-dir/app-edge/app-edge.test.ts:4:1)

● app-dir edge SSR › should resolve client component without error

thrown: "Exceeded timeout of 240000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-edge/app-edge.test.ts:5:42
  at Object.describe (e2e/app-dir/app-edge/app-edge.test.ts:4:1)

● app-dir edge SSR › should handle edge rsc hmr

thrown: "Exceeded timeout of 240000 ms for a hook.
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."

  254 |   let next: NextInstance | undefined
  255 |   if (!skipped) {
> 256 |     beforeAll(async () => {
      |     ^
  257 |       next = await createNext(options)
  258 |     })
  259 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:256:5)
  at e2e/app-dir/app-edge/app-edge.test.ts:5:42
  at Object.describe (e2e/app-dir/app-edge/app-edge.test.ts:4:1)

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

@eps1lon
Copy link
Member

eps1lon commented May 5, 2025

Seems like this is breaking tests:

send.mime.define({
^

TypeError: Cannot read properties of undefined (reading 'define')

-- https://github.com/vercel/next.js/actions/runs/14817763757/job/41639462880?pr=78816#step:34:117

@nicole0707
Copy link
Author

Seems like this is breaking tests:

send.mime.define({
^
TypeError: Cannot read properties of undefined (reading 'define')

-- https://github.com/vercel/next.js/actions/runs/14817763757/job/41639462880?pr=78816#step:34:117

@eps1lon Thanks for looking into the issue. I just checked and it looks like the send package no longer exports the mime module - https://github.com/pillarjs/send/pull/192/files#diff-e727e4bdf3657fd1d798edcd6b099d6e092f8573cba266154583a746bba0f346L71, so the current approach doesn't work. I've switched back to a previous version to resolve the CSP issues for now. If we plan to upgrade send or mime in the future, we can revisit the solution then 🙏.

@nicole0707 nicole0707 changed the title Upgrade send to the latest version Update send to v0.18.0 May 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

CSP header missing in 304 responses for static assets served by next/dist/compiled/send
3 participants