next.js
next.js copied to clipboard
wip
Closes NEXT-2512
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 imageexpect(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.
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