next.js icon indicating copy to clipboard operation
next.js copied to clipboard

wip

Open huozhi opened this issue 1 year ago • 2 comments

Closes NEXT-2512

huozhi avatar Feb 16 '24 00:02 huozhi

Failing test suites

Commit: 6cf958a706e9e0c879c1183d3a6f2ad356e5a238

TURBOPACK=1 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

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

Expected: 200
Received: 500

  31 |   it('should render properly', async () => {
  32 |     const res = await fetchViaHTTP(appPort, '/')
> 33 |     expect(res.status).toBe(200)
     |                        ^
  34 |     expect(await res.text()).toContain('Home')
  35 |   })
  36 | })

  at Object.toBe (integration/app-dir-export/test/dev-custom-dist-dir.test.ts:33:24)

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

TURBOPACK=1 pnpm test test/integration/app-dir-export/test/dynamic-missing-gsp-dev.test.ts (turbopack)

  • app dir - with output export - dynamic missing gsp dev > development mode > should error when dynamic route is missing generateStaticParams
Expand output

● app dir - with output export - dynamic missing gsp dev › development mode › should error when dynamic route is missing generateStaticParams

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

Expected substring: "Page \"/another/[slug]/page\" is missing exported function \"generateStaticParams()\", which is required with \"output: export\" config."
Received string:    "Failed to compile"

  155 |         const browser = await webdriver(port, url)
  156 |         expect(await hasRedbox(browser)).toBe(true)
> 157 |         expect(await getRedboxHeader(browser)).toContain(expectedErrMsg)
      |                                                ^
  158 |       } else {
  159 |         await check(() => result.stderr, /error/i)
  160 |       }

  at toContain (integration/app-dir-export/test/utils.ts:157:48)
  at Object.<anonymous> (integration/app-dir-export/test/dynamic-missing-gsp-dev.test.ts:6:7)

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

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

Expected: 200
Received: 500

  15 |   it('should work with babel and next/image', async () => {
  16 |     const res = await fetchViaHTTP(appPort, '/')
> 17 |     expect(res.status).toBe(200)
     |                        ^
  18 |   })
  19 | })
  20 |

  at Object.toBe (integration/babel-next-image/babel-next-image.test.js:17:24)

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

TURBOPACK=1 pnpm test-dev test/development/acceptance-app/ReactRefresh.test.ts (turbopack)

  • ReactRefresh app > can edit a component without losing state
  • ReactRefresh app > cyclic dependencies
Expand output

● ReactRefresh app › can edit a component without losing state

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

Expected: "1"
Received: ""

  36 |     expect(
  37 |       await session.evaluate(() => document.querySelector('p').textContent)
> 38 |     ).toBe('1')
     |       ^
  39 |     await session.patch(
  40 |       'index.js',
  41 |       outdent`

  at Object.toBe (development/acceptance-app/ReactRefresh.test.ts:38:7)

● ReactRefresh app › cyclic dependencies

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

Expected: "Hello. 100"
Received: ""

  165 |     expect(
  166 |       await session.evaluate(() => document.querySelector('p').textContent)
> 167 |     ).toBe('Hello. 100')
      |       ^
  168 |
  169 |     let didFullRefresh = !(await session.patch(
  170 |       'SurveyOverview.js',

  at Object.toBe (development/acceptance-app/ReactRefresh.test.ts:167:7)

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

pnpm test-dev test/e2e/app-dir/app-css-pageextensions/index.test.ts (PPR)

  • app dir - css with pageextensions > css support with pageextensions > page in app directory with pageextention, css should work > should support global css inside layout
Expand output

● app dir - css with pageextensions › css support with pageextensions › page in app directory with pageextention, css should work › should support global css inside layout

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

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

  22 |               `window.getComputedStyle(document.querySelector('h1')).color`
  23 |             )
> 24 |           ).toBe('rgb(255, 0, 0)')
     |             ^
  25 |         })
  26 |       })
  27 |     })

  at Object.toBe (e2e/app-dir/app-css-pageextensions/index.test.ts:24:13)

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

pnpm test-dev test/development/app-dir/strict-mode-enabled-by-default/strict-mode-enabled-by-default.test.ts (PPR)

  • Strict Mode enabled by default > should work using browser
Expand output

● Strict Mode enabled by default › should work using browser

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

Expected: 2
Received: 0

  15 |         (log) => log.source === 'log' && log.message.match(/logged \d times/)
  16 |       )
> 17 |       expect(userLogs.length).toBe(2)
     |                               ^
  18 |       userLogs.forEach((log, i) => {
  19 |         expect(log.message).toBe(`logged ${i + 1} times`)
  20 |       })

  at Object.toBe (development/app-dir/strict-mode-enabled-by-default/strict-mode-enabled-by-default.test.ts:17:31)

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

pnpm test-dev test/e2e/app-dir/_allow-underscored-root-directory/_allow-underscored-root-directory.test.ts (PPR)

  • _allow-underscored-root-directory > should not serve app path with underscore
  • _allow-underscored-root-directory > should pages path with a underscore at the root
  • _allow-underscored-root-directory > should serve app path with %5F
Expand output

● _allow-underscored-root-directory › should not serve app path with underscore

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

Expected: 404
Received: 500

   9 |     it('should not serve app path with underscore', async () => {
  10 |       const res = await next.fetch('/_handlers')
> 11 |       expect(res.status).toBe(404)
     |                          ^
  12 |     })
  13 |
  14 |     it('should pages path with a underscore at the root', async () => {

  at Object.toBe (e2e/app-dir/_allow-underscored-root-directory/_allow-underscored-root-directory.test.ts:11:26)

● _allow-underscored-root-directory › should pages path with a underscore at the root

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

Expected: "Hello, world!"
Received: "<!DOCTYPE html><html><head><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><meta charSet=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width\"/><meta name=\"next-head-count\" content=\"2\"/><noscript data-n-css=\"\"></noscript><script defer=\"\" nomodule=\"\" src=\"/_next/static/chunks/polyfills.js\"></script><script src=\"/_next/static/chunks/webpack.js\" defer=\"\"></script><script src=\"/_next/static/chunks/main.js\" defer=\"\"></script><script src=\"/_next/static/chunks/pages/_app.js\" defer=\"\"></script><script src=\"/_next/static/chunks/pages/_error.js\" defer=\"\"></script><script src=\"/_next/static/development/_buildManifest.js\" defer=\"\"></script><script src=\"/_next/static/development/_ssgManifest.js\" defer=\"\"></script><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script src=\"/_next/static/chunks/react-refresh.js\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"Error\",\"source\":\"server\",\"message\":\"The \\\"react\\\" package in this environment is not configured correctly. The \\\"react-server\\\" condition must be enabled in any environment that runs React Server Components.\",\"stack\":\"Error: The \\\"react\\\" package in this environment is not configured correctly. The \\\"react-server\\\" condition must be enabled in any environment that runs React Server Components.\\n    at /tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:58:997033\\n    at (react-server)/./dist/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.edge.development.js (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:58:1019259)\\n    at n (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:58:1072737)\\n    at (react-server)/./dist/compiled/react-server-dom-webpack-experimental/server.edge.js (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:58:1054369)\\n    at n (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:58:1072737)\\n    at (react-server)/./dist/esm/server/future/route-modules/app-page/vendored/rsc/entrypoints.js (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:58:1061079)\\n    at n (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:58:1072737)\\n    at /tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:63:6874\\n    at /tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:63:7186\\n    at Object.\\u003canonymous\\u003e (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:63:7207)\\n    at Module._compile (node:internal/modules/cjs/loader:1241:14)\\n    at Module._extensions..js (node:internal/modules/cjs/loader:1295:10)\\n    at Module.load (node:internal/modules/cjs/loader:1091:32)\\n    at Module._load (node:internal/modules/cjs/loader:938:12)\\n    at Module.require (node:internal/modules/cjs/loader:1115:19)\\n    at mod.require (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/require-hook.js:65:28)\\n    at require (node:internal/modules/helpers:130:18)\\n    at next/dist/compiled/next-server/app-page-experimental.runtime.dev.js (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/app/route.js:22:18)\\n    at __webpack_require__ (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/webpack-runtime.js:33:42)\\n    at eval (webpack-internal:///(ssr)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?b887:5:30)\\n    at (ssr)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?b887 (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/vendor-chunks/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi.js:2270:1)\\n    at __webpack_require__ (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/webpack-runtime.js:33:42)\\n    at eval (webpack-internal:///(rsc)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react/index.js:2:18)\\n    at (rsc)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react/index.js (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/vendor-chunks/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi.js:2303:1)\\n    at __webpack_require__ (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/webpack-runtime.js:33:42)\\n    at eval (webpack-internal:///(rsc)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/app-render/dynamic-rendering.js:56:55)\\n    at (rsc)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/app-render/dynamic-rendering.js (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/vendor-chunks/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi.js:2204:1)\\n    at __webpack_require__ (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/webpack-runtime.js:33:42)\\n    at eval (webpack-internal:///(rsc)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/lib/patch-fetch.js:30:27)\\n    at (rsc)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/lib/patch-fetch.js (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/vendor-chunks/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi.js:2325:1)\\n    at __webpack_require__ (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/webpack-runtime.js:33:42)\\n    at eval (webpack-internal:///(rsc)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Froute\\u0026page=%2Froute\\u0026appPaths=\\u0026pagePath=private-next-app-dir%2Froute.js\\u0026appDir=%2Ftmp%2Fnext-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462%2Fapp\\u0026pageExtensions=tsx\\u0026pageExtensions=ts\\u0026pageExtensions=jsx\\u0026pageExtensions=js\\u0026rootDir=%2Ftmp%2Fnext-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462\\u0026isDev=true\\u0026tsconfigPath=tsconfig.json\\u0026basePath=\\u0026assetPrefix=\\u0026nextConfigOutput=\\u0026preferredRegion=\\u0026middlewareConfig=e30%3D!:13:90)\\n    at (rsc)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Froute\\u0026page=%2Froute\\u0026appPaths=\\u0026pagePath=private-next-app-dir%2Froute.js\\u0026appDir=%2Ftmp%2Fnext-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462%2Fapp\\u0026pageExtensions=tsx\\u0026pageExtensions=ts\\u0026pageExtensions=jsx\\u0026pageExtensions=js\\u0026rootDir=%2Ftmp%2Fnext-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462\\u0026isDev=true\\u0026tsconfigPath=tsconfig.json\\u0026basePath=\\u0026assetPrefix=\\u0026nextConfigOutput=\\u0026preferredRegion=\\u0026middlewareConfig=e30%3D! (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/app/route.js:42:1)\\n    at __webpack_require__ (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/webpack-runtime.js:33:42)\\n    at __webpack_exec__ (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/app/route.js:72:39)\\n    at /tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/app/route.js:73:199\\n    at __webpack_require__.X (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/webpack-runtime.js:163:21)\\n    at /tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/app/route.js:73:47\\n    at Object.\\u003canonymous\\u003e (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/app/route.js:76:3)\\n    at Module._compile (node:internal/modules/cjs/loader:1241:14)\\n    at Module._extensions..js (node:internal/modules/cjs/loader:1295:10)\\n    at Module.load (node:internal/modules/cjs/loader:1091:32)\\n    at Module._load (node:internal/modules/cjs/loader:938:12)\\n    at Module.require (node:internal/modules/cjs/loader:1115:19)\\n    at mod.require (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/require-hook.js:65:28)\\n    at require (node:internal/modules/helpers:130:18)\\n    at requirePage (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/require.js:109:84)\\n    at /tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/load-components.js:74:84\\n    at async loadComponentsImpl (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/load-components.js:74:26)\\n    at async DevServer.findPageComponentsImpl (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/next-server.js:670:36)\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  14 |     it('should pages path with a underscore at the root', async () => {
  15 |       const res = await next.fetch('/')
> 16 |       await expect(res.text()).resolves.toBe('Hello, world!')
     |                                         ^
  17 |     })
  18 |
  19 |     it('should serve app path with %5F', async () => {

  at Object.toBe (../node_modules/.pnpm/[email protected]/node_modules/expect/build/index.js:174:22)
  at Object.toBe (e2e/app-dir/_allow-underscored-root-directory/_allow-underscored-root-directory.test.ts:16:41)

● _allow-underscored-root-directory › should serve app path with %5F

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

Expected: "Hello, world!"
Received: "<!DOCTYPE html><html><head><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><meta charSet=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width\"/><meta name=\"next-head-count\" content=\"2\"/><noscript data-n-css=\"\"></noscript><script defer=\"\" nomodule=\"\" src=\"/_next/static/chunks/polyfills.js\"></script><script src=\"/_next/static/chunks/webpack.js\" defer=\"\"></script><script src=\"/_next/static/chunks/main.js\" defer=\"\"></script><script src=\"/_next/static/chunks/pages/_app.js\" defer=\"\"></script><script src=\"/_next/static/chunks/pages/_error.js\" defer=\"\"></script><script src=\"/_next/static/development/_buildManifest.js\" defer=\"\"></script><script src=\"/_next/static/development/_ssgManifest.js\" defer=\"\"></script><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script src=\"/_next/static/chunks/react-refresh.js\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"Error\",\"source\":\"server\",\"message\":\"The \\\"react\\\" package in this environment is not configured correctly. The \\\"react-server\\\" condition must be enabled in any environment that runs React Server Components.\",\"stack\":\"Error: The \\\"react\\\" package in this environment is not configured correctly. The \\\"react-server\\\" condition must be enabled in any environment that runs React Server Components.\\n    at /tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:58:997033\\n    at (react-server)/./dist/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.edge.development.js (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:58:1019259)\\n    at n (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:58:1072737)\\n    at (react-server)/./dist/compiled/react-server-dom-webpack-experimental/server.edge.js (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:58:1054369)\\n    at n (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:58:1072737)\\n    at (react-server)/./dist/esm/server/future/route-modules/app-page/vendored/rsc/entrypoints.js (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:58:1061079)\\n    at n (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:58:1072737)\\n    at /tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:63:6874\\n    at /tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:63:7186\\n    at Object.\\u003canonymous\\u003e (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.dev.js:63:7207)\\n    at Module._compile (node:internal/modules/cjs/loader:1241:14)\\n    at Module._extensions..js (node:internal/modules/cjs/loader:1295:10)\\n    at Module.load (node:internal/modules/cjs/loader:1091:32)\\n    at Module._load (node:internal/modules/cjs/loader:938:12)\\n    at Module.require (node:internal/modules/cjs/loader:1115:19)\\n    at mod.require (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/require-hook.js:65:28)\\n    at require (node:internal/modules/helpers:130:18)\\n    at next/dist/compiled/next-server/app-page-experimental.runtime.dev.js (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/app/%5Froutable-folder/route.js:22:18)\\n    at __webpack_require__ (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/webpack-runtime.js:33:42)\\n    at eval (webpack-internal:///(ssr)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?b887:5:30)\\n    at (ssr)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?b887 (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/vendor-chunks/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi.js:2270:1)\\n    at __webpack_require__ (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/webpack-runtime.js:33:42)\\n    at eval (webpack-internal:///(rsc)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react/index.js:2:18)\\n    at (rsc)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react/index.js (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/vendor-chunks/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi.js:2303:1)\\n    at __webpack_require__ (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/webpack-runtime.js:33:42)\\n    at eval (webpack-internal:///(rsc)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/app-render/dynamic-rendering.js:56:55)\\n    at (rsc)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/app-render/dynamic-rendering.js (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/vendor-chunks/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi.js:2204:1)\\n    at __webpack_require__ (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/webpack-runtime.js:33:42)\\n    at eval (webpack-internal:///(rsc)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/lib/patch-fetch.js:30:27)\\n    at (rsc)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/lib/patch-fetch.js (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/vendor-chunks/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi.js:2325:1)\\n    at __webpack_require__ (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/webpack-runtime.js:33:42)\\n    at eval (webpack-internal:///(rsc)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2F%255Froutable-folder%2Froute\\u0026page=%2F%255Froutable-folder%2Froute\\u0026appPaths=\\u0026pagePath=private-next-app-dir%2F%255Froutable-folder%2Froute.js\\u0026appDir=%2Ftmp%2Fnext-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462%2Fapp\\u0026pageExtensions=tsx\\u0026pageExtensions=ts\\u0026pageExtensions=jsx\\u0026pageExtensions=js\\u0026rootDir=%2Ftmp%2Fnext-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462\\u0026isDev=true\\u0026tsconfigPath=tsconfig.json\\u0026basePath=\\u0026assetPrefix=\\u0026nextConfigOutput=\\u0026preferredRegion=\\u0026middlewareConfig=e30%3D!:13:90)\\n    at (rsc)/./node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2F%255Froutable-folder%2Froute\\u0026page=%2F%255Froutable-folder%2Froute\\u0026appPaths=\\u0026pagePath=private-next-app-dir%2F%255Froutable-folder%2Froute.js\\u0026appDir=%2Ftmp%2Fnext-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462%2Fapp\\u0026pageExtensions=tsx\\u0026pageExtensions=ts\\u0026pageExtensions=jsx\\u0026pageExtensions=js\\u0026rootDir=%2Ftmp%2Fnext-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462\\u0026isDev=true\\u0026tsconfigPath=tsconfig.json\\u0026basePath=\\u0026assetPrefix=\\u0026nextConfigOutput=\\u0026preferredRegion=\\u0026middlewareConfig=e30%3D! (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/app/%5Froutable-folder/route.js:42:1)\\n    at __webpack_require__ (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/webpack-runtime.js:33:42)\\n    at __webpack_exec__ (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/app/%5Froutable-folder/route.js:72:39)\\n    at /tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/app/%5Froutable-folder/route.js:73:199\\n    at __webpack_require__.X (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/webpack-runtime.js:163:21)\\n    at /tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/app/%5Froutable-folder/route.js:73:47\\n    at Object.\\u003canonymous\\u003e (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/.next/server/app/%5Froutable-folder/route.js:76:3)\\n    at Module._compile (node:internal/modules/cjs/loader:1241:14)\\n    at Module._extensions..js (node:internal/modules/cjs/loader:1295:10)\\n    at Module.load (node:internal/modules/cjs/loader:1091:32)\\n    at Module._load (node:internal/modules/cjs/loader:938:12)\\n    at Module.require (node:internal/modules/cjs/loader:1115:19)\\n    at mod.require (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/require-hook.js:65:28)\\n    at require (node:internal/modules/helpers:130:18)\\n    at requirePage (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/require.js:109:84)\\n    at /tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/load-components.js:74:84\\n    at async loadComponentsImpl (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/load-components.js:74:26)\\n    at async DevServer.findPageComponentsImpl (/tmp/next-install-749ece612e1e0d6bc18c603c8b4f77c189aebc878f594090a4e280ddbca99462/node_modules/.pnpm/file+..+next-repo-23a7e5491244305c1bb2d37239ffaf39933cfe39e64e0149e49675bb16f8876a+packages+n_fkohcwh3yw3k2qdu2ajbps3txi/node_modules/next/dist/server/next-server.js:670:36)\"},\"gip\":true,\"scriptLoader\":[]}</script></body></html>"

  19 |     it('should serve app path with %5F', async () => {
  20 |       const res = await next.fetch('/_routable-folder')
> 21 |       await expect(res.text()).resolves.toBe('Hello, world!')
     |                                         ^
  22 |     })
  23 |   }
  24 | )

  at Object.toBe (../node_modules/.pnpm/[email protected]/node_modules/expect/build/index.js:174:22)
  at Object.toBe (e2e/app-dir/_allow-underscored-root-directory/_allow-underscored-root-directory.test.ts:21:41)

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

TURBOPACK=1 pnpm test test/integration/app-dir-export/test/trailing-slash-dev.test.ts (turbopack)

  • 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'

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

  3 | describe('app dir - with output export - trailing slash dev', () => {
  4 |   describe('development mode', () => {
> 5 |     it.each([{ trailingSlash: false }, { trailingSlash: true }])(
    |                                                                ^
  6 |       "should work in dev with trailingSlash '$trailingSlash'",
  7 |       async ({ trailingSlash }) => {
  8 |         await runTests({ isDev: true, trailingSlash })

  at ../node_modules/.pnpm/[email protected]/node_modules/jest-each/build/bind.js:47:15
      at Array.forEach (<anonymous>)
  at integration/app-dir-export/test/trailing-slash-dev.test.ts:5:64
  at describe (integration/app-dir-export/test/trailing-slash-dev.test.ts:4:3)
  at Object.describe (integration/app-dir-export/test/trailing-slash-dev.test.ts:3:1)

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

Failed to replace content.

Pattern: trailingSlash: true,

Content: /** @type {import('next').NextConfig} */
const nextConfig = {
  output: 'export',
  // distDir: '.next-custom',
  trailingSlash: false,
  generateBuildId() {
    return 'test-build-id'
  },
}

module.exports = nextConfig

  669 |     } else if (typeof pattern === 'string') {
  670 |       if (!currentContent.includes(pattern)) {
> 671 |         throw new Error(
      |               ^
  672 |           `Failed to replace content.\n\nPattern: ${pattern}\n\nContent: ${currentContent}`
  673 |         )
  674 |       }

  at File.replace (lib/next-test-utils.ts:671:15)
  at replace (integration/app-dir-export/test/utils.ts:106:16)
  at integration/app-dir-export/test/trailing-slash-dev.test.ts:8:23

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

pnpm test-dev test/e2e/app-dir/actions-allowed-origins/app-action-allowed-origins.test.ts

  • 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

page.waitForSelector: Timeout 60000ms exceeded.
Call log:
  - waiting for locator('button')

  421 |     return this.chain(() => {
  422 |       return page
> 423 |         .waitForSelector(selector, { timeout, state: 'attached' })
      |          ^
  424 |         .then(async (el) => {
  425 |           // it seems selenium waits longer and tests rely on this behavior
  426 |           // so we wait for the load event fire before returning

  at waitForSelector (lib/browsers/playwright.ts:423:10)

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

pnpm test-dev test/e2e/app-dir/app-basepath-custom-server/index.test.ts

  • custom-app-server-action-redirect > redirects with basepath properly when server action handler uses redirect
Expand output

● custom-app-server-action-redirect › redirects with basepath properly when server action handler uses redirect

page.waitForSelector: Timeout 60000ms exceeded.
Call log:
  - waiting for locator('#increase-count')

  421 |     return this.chain(() => {
  422 |       return page
> 423 |         .waitForSelector(selector, { timeout, state: 'attached' })
      |          ^
  424 |         .then(async (el) => {
  425 |           // it seems selenium waits longer and tests rely on this behavior
  426 |           // so we wait for the load event fire before returning

  at waitForSelector (lib/browsers/playwright.ts:423:10)

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

pnpm test-dev test/e2e/app-dir/next-image/next-image.test.ts

  • app dir - next-image > browser content > should render images nested under page dir on /nested route
  • app dir - next-image > image content > should render images on /client route
  • app dir - next-image > image content > should render images nested under page dir on /nested route
  • app dir - next-image > image content > should render legacy images under /legacy route
  • app dir - next-image > ssr content > should render images on /client route
  • app dir - next-image > ssr content > should render images nested under page dir on /nested route
Expand output

● app dir - next-image › ssr content › should render images on /client route

expect(received).toMatch(expected)

Matcher error: received value must be a string

Received has value: undefined

  83 |
  84 |         const root = $('#app-layout')
> 85 |         expect(root.attr('src')).toMatch(
     |                                  ^
  86 |           /\/_next\/image\?url=%2F_next%2Fstatic%2Fmedia%2Ftest\.([^.]+)\.png&w=828&q=85/
  87 |         )
  88 |         expect(root.attr('srcset')).toMatch(

  at Object.toMatch (e2e/app-dir/next-image/next-image.test.ts:85:34)

● app dir - next-image › ssr content › should render images nested under page dir on /nested route

expect(received).toMatch(expected)

Matcher error: received value must be a string

Received has value: undefined

  119 |
  120 |         const root = $('#app-layout')
> 121 |         expect(root.attr('src')).toMatch(
      |                                  ^
  122 |           /\/_next\/image\?url=%2F_next%2Fstatic%2Fmedia%2Ftest\.([^.]+)\.png&w=828&q=85/
  123 |         )
  124 |         expect(root.attr('srcset')).toMatch(

  at Object.toMatch (e2e/app-dir/next-image/next-image.test.ts:121:34)

● app dir - next-image › browser content › should render images nested under page dir on /nested route

page.waitForSelector: Timeout 60000ms exceeded.
Call log:
  - waiting for locator('#app-layout')

  421 |     return this.chain(() => {
  422 |       return page
> 423 |         .waitForSelector(selector, { timeout, state: 'attached' })
      |          ^
  424 |         .then(async (el) => {
  425 |           // it seems selenium waits longer and tests rely on this behavior
  426 |           // so we wait for the load event fire before returning

  at waitForSelector (lib/browsers/playwright.ts:423:10)

● app dir - next-image › image content › should render images on /client route

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

Expected: "image/png"
Received: "text/html; charset=utf-8"

  282 |         const res1 = await next.fetch($('#app-layout').attr('src'))
  283 |         expect(res1.status).toBe(200)
> 284 |         expect(res1.headers.get('content-type')).toBe('image/png')
      |                                                  ^
  285 |
  286 |         const res2 = await next.fetch($('#app-client-layout').attr('src'))
  287 |         expect(res2.status).toBe(200)

  at Object.toBe (e2e/app-dir/next-image/next-image.test.ts:284:50)

● app dir - next-image › image content › should render images nested under page dir on /nested route

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

Expected: "image/png"
Received: "text/html; charset=utf-8"

  302 |         const res1 = await next.fetch($('#app-layout').attr('src'))
  303 |         expect(res1.status).toBe(200)
> 304 |         expect(res1.headers.get('content-type')).toBe('image/png')
      |                                                  ^
  305 |
  306 |         const res2 = await next.fetch($('#app-nested-layout').attr('src'))
  307 |         expect(res2.status).toBe(200)

  at Object.toBe (e2e/app-dir/next-image/next-image.test.ts:304:50)

● app dir - next-image › image content › should render legacy images under /legacy route

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

Expected: "image/png"
Received: "text/html; charset=utf-8"

  322 |         const res2 = await next.fetch($('#app-legacy-layout').attr('src'))
  323 |         expect(res2.status).toBe(200)
> 324 |         expect(res2.headers.get('content-type')).toBe('image/png')
      |                                                  ^
  325 |
  326 |         const res3 = await next.fetch($('#app-legacy-page').attr('src'))
  327 |         expect(res3.status).toBe(200)

  at Object.toBe (e2e/app-dir/next-image/next-image.test.ts:324:50)

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

pnpm test test/integration/next-image-new/app-dir/test/static.test.ts

  • Static Image Component Tests > dev mode > Should allow an image with a static src to omit height and width
  • Static Image Component Tests > dev mode > should have containing followed by for priority image
  • Static Image Component Tests > dev mode > Should automatically provide an image height and width
  • Static Image Component Tests > dev mode > should use width and height prop to override import
  • Static Image Component Tests > dev mode > should use height prop to adjust both width and height
  • Static Image Component Tests > dev mode > should use width prop to adjust both width and height
  • Static Image Component Tests > dev mode > should add a data URL placeholder to an image
  • Static Image Component Tests > dev mode > should add a blur placeholder a statically imported jpg
  • Static Image Component Tests > dev mode > should add a blur placeholder a statically imported png
  • Static Image Component Tests > dev mode > should add a blur placeholder a statically imported png with fill
  • Static Image Component Tests > dev mode > should add placeholder with blurDataURL and fill
  • Static Image Component Tests > dev mode > should add placeholder even when blurDataURL aspect ratio does not match width/height ratio
  • Static Image Component Tests > dev mode > should load direct imported image
Expand output

● Static Image Component Tests › dev mode › Should allow an image with a static src to omit height and width

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

  23 |
  24 | const runTests = (isDev) => {
> 25 |   it('Should allow an image with a static src to omit height and width', async () => {
     |   ^
  26 |     expect(await browser.elementById('basic-static')).toBeTruthy()
  27 |     expect(await browser.elementById('blur-png')).toBeTruthy()
  28 |     expect(await browser.elementById('blur-webp')).toBeTruthy()

  at it (integration/next-image-new/app-dir/test/static.test.ts:25:3)
  at runTests (integration/next-image-new/app-dir/test/static.test.ts:272:5)
  at describe (integration/next-image-new/app-dir/test/static.test.ts:261:3)
  at Object.describe (integration/next-image-new/app-dir/test/static.test.ts:245:1)

● Static Image Component Tests › dev mode › should have

containing followed by for priority image
expect(received).toMatch(expected)

Matcher error: received value must be a string

Received has value: undefined

  89 |       })
  90 |     expect(metaViewport.attribs.content).toContain('width=device-width')
> 91 |     expect(linkPreload.attribs.imagesrcset).toMatch(
     |                                             ^
  92 |       /%2F_next%2Fstatic%2Fmedia%2Ftest-rect\.(.*)\.jpg/g
  93 |     )
  94 |     expect(metaViewport.index).toBeLessThan(linkPreload.index)

  at Object.toMatch (integration/next-image-new/app-dir/test/static.test.ts:91:45)

● Static Image Component Tests › dev mode › Should automatically provide an image height and width

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

Expected: "400"
Received: undefined

   96 |   it('Should automatically provide an image height and width', async () => {
   97 |     const img = $('#basic-non-static')
>  98 |     expect(img.attr('width')).toBe('400')
      |                               ^
   99 |     expect(img.attr('height')).toBe('300')
  100 |   })
  101 |   it('should use width and height prop to override import', async () => {

  at Object.toBe (integration/next-image-new/app-dir/test/static.test.ts:98:31)

● Static Image Component Tests › dev mode › should use width and height prop to override import

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

Expected: "150"
Received: undefined

  101 |   it('should use width and height prop to override import', async () => {
  102 |     const img = $('#defined-width-and-height')
> 103 |     expect(img.attr('width')).toBe('150')
      |                               ^
  104 |     expect(img.attr('height')).toBe('150')
  105 |   })
  106 |   it('should use height prop to adjust both width and height', async () => {

  at Object.toBe (integration/next-image-new/app-dir/test/static.test.ts:103:31)

● Static Image Component Tests › dev mode › should use height prop to adjust both width and height

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

Expected: "600"
Received: undefined

  106 |   it('should use height prop to adjust both width and height', async () => {
  107 |     const img = $('#defined-height-only')
> 108 |     expect(img.attr('width')).toBe('600')
      |                               ^
  109 |     expect(img.attr('height')).toBe('350')
  110 |   })
  111 |   it('should use width prop to adjust both width and height', async () => {

  at Object.toBe (integration/next-image-new/app-dir/test/static.test.ts:108:31)

● Static Image Component Tests › dev mode › should use width prop to adjust both width and height

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

Expected: "400"
Received: undefined

  111 |   it('should use width prop to adjust both width and height', async () => {
  112 |     const img = $('#defined-width-only')
> 113 |     expect(img.attr('width')).toBe('400')
      |                               ^
  114 |     expect(img.attr('height')).toBe('233')
  115 |   })
  116 |

  at Object.toBe (integration/next-image-new/app-dir/test/static.test.ts:113:31)

● Static Image Component Tests › dev mode › should add a data URL placeholder to an image

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

Expected: "color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(\"data:image/svg+xml;base64,Cjxzdmcgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImciPgogICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMzMzIiBvZmZzZXQ9IjIwJSIgLz4KICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzIyMiIgb2Zmc2V0PSI1MCUiIC8+CiAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMzMzMiIG9mZnNldD0iNzAlIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICA8L2RlZnM+CiAgPHJlY3Qgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIGZpbGw9IiMzMzMiIC8+CiAgPHJlY3QgaWQ9InIiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBmaWxsPSJ1cmwoI2cpIiAvPgogIDxhbmltYXRlIHhsaW5rOmhyZWY9IiNyIiBhdHRyaWJ1dGVOYW1lPSJ4IiBmcm9tPSItMjAwIiB0bz0iMjAwIiBkdXI9IjFzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgIC8+Cjwvc3ZnPg==\")"
Received: undefined

  117 |   it('should add a data URL placeholder to an image', async () => {
  118 |     const style = $('#data-url-placeholder').attr('style')
> 119 |     expect(style).toBe(
      |                   ^
  120 |       `color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;base64,Cjxzdmcgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImciPgogICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMzMzIiBvZmZzZXQ9IjIwJSIgLz4KICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzIyMiIgb2Zmc2V0PSI1MCUiIC8+CiAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMzMzMiIG9mZnNldD0iNzAlIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICA8L2RlZnM+CiAgPHJlY3Qgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIGZpbGw9IiMzMzMiIC8+CiAgPHJlY3QgaWQ9InIiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBmaWxsPSJ1cmwoI2cpIiAvPgogIDxhbmltYXRlIHhsaW5rOmhyZWY9IiNyIiBhdHRyaWJ1dGVOYW1lPSJ4IiBmcm9tPSItMjAwIiB0bz0iMjAwIiBkdXI9IjFzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgIC8+Cjwvc3ZnPg==")`
  121 |     )
  122 |   })

  at Object.toBe (integration/next-image-new/app-dir/test/static.test.ts:119:19)

● Static Image Component Tests › dev mode › should add a blur placeholder a statically imported jpg

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

Expected: "color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(\"/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest-rect.f323a148.jpg&w=8&q=70\")"
Received: undefined

  130 |         )
  131 |       } else {
> 132 |         expect(style).toBe(
      |                       ^
  133 |           `color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest-rect.f323a148.jpg&w=8&q=70")`
  134 |         )
  135 |       }

  at Object.toBe (integration/next-image-new/app-dir/test/static.test.ts:132:23)

● Static Image Component Tests › dev mode › should add a blur placeholder a statically imported png

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

Expected: "color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(\"/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=8&q=70\")"
Received: undefined

  155 |         )
  156 |       } else {
> 157 |         expect(style).toBe(
      |                       ^
  158 |           `color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=8&q=70")`
  159 |         )
  160 |       }

  at Object.toBe (integration/next-image-new/app-dir/test/static.test.ts:157:23)

● Static Image Component Tests › dev mode › should add a blur placeholder a statically imported png with fill

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

Expected: "position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(\"/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=8&q=70\")"
Received: undefined

  180 |         )
  181 |       } else {
> 182 |         expect(style).toBe(
      |                       ^
  183 |           `position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=8&q=70")`
  184 |         )
  185 |       }

  at Object.toBe (integration/next-image-new/app-dir/test/static.test.ts:182:23)

● Static Image Component Tests › dev mode › should add placeholder with blurDataURL and fill

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

Expected: "position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' %3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNM/s/wBwAFjwJgf8HDLgAAAABJRU5ErkJggg=='/%3E%3C/svg%3E\")"
Received: undefined

  199 |   it('should add placeholder with blurDataURL and fill', async () => {
  200 |     const style = $('#blurdataurl-fill').attr('style')
> 201 |     expect(style).toBe(
      |                   ^
  202 |       `position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' %3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNM/s/wBwAFjwJgf8HDLgAAAABJRU5ErkJggg=='/%3E%3C/svg%3E")`
  203 |     )
  204 |   })

  at Object.toBe (integration/next-image-new/app-dir/test/static.test.ts:201:19)

● Static Image Component Tests › dev mode › should add placeholder even when blurDataURL aspect ratio does not match width/height ratio

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

Expected: "color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 200'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNM/s/wBwAFjwJgf8HDLgAAAABJRU5ErkJggg=='/%3E%3C/svg%3E\")"
Received: undefined

  206 |   it('should add placeholder even when blurDataURL aspect ratio does not match width/height ratio', async () => {
  207 |     const style = $('#blurdataurl-ratio').attr('style')
> 208 |     expect(style).toBe(
      |                   ^
  209 |       `color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 200'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNM/s/wBwAFjwJgf8HDLgAAAABJRU5ErkJggg=='/%3E%3C/svg%3E")`
  210 |     )
  211 |   })

  at Object.toBe (integration/next-image-new/app-dir/test/static.test.ts:208:19)

● Static Image Component Tests › dev mode › should load direct imported image

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

  211 |   })
  212 |
> 213 |   it('should load direct imported image', async () => {
      |   ^
  214 |     const src = await browser.elementById('basic-static').getAttribute('src')
  215 |     expect(src).toMatch(
  216 |       /_next\/image\?url=%2F_next%2Fstatic%2Fmedia%2Ftest-rect(.+)\.jpg&w=828&q=75/

  at it (integration/next-image-new/app-dir/test/static.test.ts:213:3)
  at runTests (integration/next-image-new/app-dir/test/static.test.ts:272:5)
  at describe (integration/next-image-new/app-dir/test/static.test.ts:261:3)
  at Object.describe (integration/next-image-new/app-dir/test/static.test.ts:245:1)

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

ijjk avatar Feb 16 '24 00:02 ijjk

Stats from current PR

Default Build (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js chore/delete-extra-alias Change
buildDuration 19.9s 21s ⚠️ +1s
buildDurationCached 8.5s 7.6s N/A
nodeModulesSize 196 MB 229 MB ⚠️ +32.6 MB
nextStartRea..uration (ms) 427ms 427ms
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js chore/delete-extra-alias Change
1068-HASH.js gzip 30.3 kB 30.4 kB N/A
3f784ff6-HASH.js gzip 53.5 kB 53.5 kB N/A
4944-HASH.js gzip 5.04 kB 5.03 kB N/A
8423.HASH.js gzip 181 B 181 B
framework-HASH.js gzip 45.2 kB 45.2 kB
main-app-HASH.js gzip 241 B 241 B
main-HASH.js gzip 32.1 kB 32.1 kB N/A
webpack-HASH.js gzip 1.7 kB 1.7 kB
Overall change 47.3 kB 47.3 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js chore/delete-extra-alias Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary vercel/next.js chore/delete-extra-alias Change
_app-HASH.js gzip 196 B 196 B
_error-HASH.js gzip 184 B 183 B N/A
amp-HASH.js gzip 503 B 504 B N/A
css-HASH.js gzip 323 B 324 B N/A
dynamic-HASH.js gzip 2.5 kB 2.51 kB N/A
edge-ssr-HASH.js gzip 258 B 259 B N/A
head-HASH.js gzip 353 B 351 B N/A
hooks-HASH.js gzip 370 B 370 B
image-HASH.js gzip 4.21 kB 4.2 kB N/A
index-HASH.js gzip 259 B 259 B
link-HASH.js gzip 2.68 kB 2.67 kB N/A
routerDirect..HASH.js gzip 313 B 314 B N/A
script-HASH.js gzip 386 B 385 B N/A
withRouter-HASH.js gzip 309 B 311 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 931 B 931 B
Client Build Manifests
vercel/next.js canary vercel/next.js chore/delete-extra-alias Change
_buildManifest.js gzip 485 B 484 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js chore/delete-extra-alias Change
index.html gzip 528 B 528 B
link.html gzip 540 B 541 B N/A
withRouter.html gzip 524 B 523 B N/A
Overall change 528 B 528 B
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary vercel/next.js chore/delete-extra-alias Change
edge-ssr.js gzip 94.5 kB 94.5 kB N/A
page.js gzip 151 kB 152 kB ⚠️ +436 B
Overall change 151 kB 152 kB ⚠️ +436 B
Middleware size
vercel/next.js canary vercel/next.js chore/delete-extra-alias Change
middleware-b..fest.js gzip 625 B 627 B N/A
middleware-r..fest.js gzip 151 B 151 B
middleware.js gzip 44.6 kB 44.4 kB N/A
edge-runtime..pack.js gzip 1.94 kB 1.94 kB
Overall change 2.1 kB 2.1 kB
Next Runtimes Overall increase ⚠️
vercel/next.js canary vercel/next.js chore/delete-extra-alias Change
app-page-exp...dev.js gzip 166 kB 401 kB ⚠️ +235 kB
app-page-exp..prod.js gzip 95.9 kB 224 kB ⚠️ +128 kB
app-page-tur..prod.js gzip 97.6 kB 226 kB ⚠️ +128 kB
app-page-tur..prod.js gzip 92 kB 220 kB ⚠️ +128 kB
app-page.run...dev.js gzip 136 kB 370 kB ⚠️ +234 kB
app-page.run..prod.js gzip 90.6 kB 219 kB ⚠️ +128 kB
app-route-ex...dev.js gzip 22 kB 22 kB N/A
app-route-ex..prod.js gzip 14.9 kB 14.9 kB N/A
app-route-tu..prod.js gzip 14.9 kB 14.9 kB N/A
app-route-tu..prod.js gzip 14.6 kB 14.6 kB N/A
app-route.ru...dev.js gzip 21.7 kB 21.7 kB N/A
app-route.ru..prod.js gzip 14.6 kB 14.6 kB N/A
pages-api-tu..prod.js gzip 9.47 kB 9.43 kB N/A
pages-api.ru...dev.js gzip 9.74 kB 9.7 kB N/A
pages-api.ru..prod.js gzip 9.47 kB 9.43 kB N/A
pages-turbo...prod.js gzip 22.1 kB 22 kB N/A
pages.runtim...dev.js gzip 22.7 kB 22.7 kB N/A
pages.runtim..prod.js gzip 22.1 kB 22 kB N/A
server.runti..prod.js gzip 50.1 kB 50 kB N/A
Overall change 679 kB 1.66 MB ⚠️ +981 kB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js chore/delete-extra-alias Change
0.pack gzip 1.55 MB 1.55 MB ⚠️ +3.72 kB
index.pack gzip 103 kB 103 kB N/A
Overall change 1.55 MB 1.55 MB ⚠️ +3.72 kB
Diff details
Diff for page.js

Diff too large to display

Diff for middleware.js

Diff too large to display

Diff for edge-ssr.js

Diff too large to display

Diff for 1068-HASH.js

Diff too large to display

Diff for main-HASH.js

Diff too large to display

Diff for app-page-exp..ntime.dev.js
failed to diff
Diff for app-page-exp..time.prod.js
failed to diff
Diff for app-page-tur..time.prod.js
failed to diff
Diff for app-page-tur..time.prod.js
failed to diff
Diff for app-page.runtime.dev.js
failed to diff
Diff for app-page.runtime.prod.js
failed to diff
Diff for app-route-ex..ntime.dev.js

Diff too large to display

Diff for app-route-ex..time.prod.js

Diff too large to display

Diff for app-route-tu..time.prod.js

Diff too large to display

Diff for app-route-tu..time.prod.js

Diff too large to display

Diff for app-route.runtime.dev.js

Diff too large to display

Diff for app-route.ru..time.prod.js

Diff too large to display

Diff for pages-api-tu..time.prod.js

Diff too large to display

Diff for pages-api.runtime.dev.js

Diff too large to display

Diff for pages-api.ru..time.prod.js

Diff too large to display

Diff for pages-turbo...time.prod.js

Diff too large to display

Diff for pages.runtime.dev.js

Diff too large to display

Diff for pages.runtime.prod.js

Diff too large to display

Diff for server.runtime.prod.js

Diff too large to display

Commit: 6cf958a706e9e0c879c1183d3a6f2ad356e5a238

ijjk avatar Feb 16 '24 01:02 ijjk