Skip to content

Conversation

@sokra
Copy link
Member

@sokra sokra commented Jan 12, 2026

What?

Use selection reads for module id to avoid functions

@nextjs-bot
Copy link
Collaborator

Allow CI Workflow Run

  • approve CI run for commit: 38833eb

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

Comment on lines +45 to +47
&& let Some(module_id) = module_id_map.get(&ident).await?
{
return Ok((*module_id).clone());
Copy link
Contributor

@vercel vercel bot Jan 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Non-idiomatic keyed cell access pattern using (*module_id).clone() instead of .as_deref().cloned()

Fix on Vercel

@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Jan 12, 2026

Stats from current PR

✅ No significant changes detected

📊 All Metrics
📖 Metrics Glossary

Dev Server Metrics:

  • Listen = TCP port starts accepting connections
  • First Request = HTTP server returns successful response
  • Cold = Fresh build (no cache)
  • Warm = With cached build artifacts

Build Metrics:

  • Fresh = Clean build (no .next directory)
  • Cached = With existing .next directory

Change Thresholds:

  • Time: Changes < 50ms AND < 10%, OR < 2% are insignificant
  • Size: Changes < 1KB AND < 1% are insignificant
  • All other changes are flagged to catch regressions

⚡ Dev Server

Metric Canary PR Change Trend
Cold (Listen) 456ms 455ms ▁█▁▁▁
Cold (Ready in log) 437ms 437ms ▆█▆▆▅
Cold (First Request) 1.112s 1.113s ▇█▇█▇
Warm (Listen) 456ms 457ms ▁▅▁▁▁
Warm (Ready in log) 442ms 442ms ▁▃▁▁▁
Warm (First Request) 338ms 337ms ▂▆▁▆▆
📦 Dev Server (Webpack) (Legacy)

📦 Dev Server (Webpack)

Metric Canary PR Change Trend
Cold (Listen) 455ms 456ms ▁▁▁▁▁
Cold (Ready in log) 440ms 439ms ▅▄▅▄▄
Cold (First Request) 1.852s 1.846s ▃▂▃▂▂
Warm (Listen) 456ms 456ms ▁▁▁▁▁
Warm (Ready in log) 440ms 439ms ▅▃▄▅▄
Warm (First Request) 1.849s 1.834s ▃▂▂▃▂

⚡ Production Builds

Metric Canary PR Change Trend
Fresh Build 3.993s 3.958s ▁▄▁▂▁
Cached Build 3.943s 3.928s ▁▄▁▁▁
📦 Production Builds (Webpack) (Legacy)

📦 Production Builds (Webpack)

Metric Canary PR Change Trend
Fresh Build 14.086s 14.067s ▁▁▁▁▁
Cached Build 14.210s 14.254s ▁▁▁▁▁
node_modules Size 458 MB 458 MB ▁▁▁▁▁
📦 Bundle Sizes

Bundle Sizes

⚡ Turbopack

Client

Main Bundles: **430 kB** → **430 kB** ✅ -86 B

82 files with content-based hashes (individual files not comparable between builds)

Server

Middleware
Canary PR Change
middleware-b..fest.js gzip 788 B 787 B
Total 788 B 787 B ✅ -1 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 451 B 450 B
Total 451 B 450 B ✅ -1 B

📦 Webpack

Client

Main Bundles
Canary PR Change
2086.HASH.js gzip 169 B N/A -
2161-HASH.js gzip 5.41 kB N/A -
2747-HASH.js gzip 4.48 kB N/A -
4322-HASH.js gzip 52.3 kB N/A -
ec793fe8-HASH.js gzip 62.3 kB N/A -
framework-HASH.js gzip 59.8 kB 59.8 kB
main-app-HASH.js gzip 251 B 254 B 🔴 +3 B (+1%)
main-HASH.js gzip 38.6 kB 38.9 kB
webpack-HASH.js gzip 1.68 kB 1.68 kB
1596.HASH.js gzip N/A 169 B -
2658-HASH.js gzip N/A 51.9 kB -
6349-HASH.js gzip N/A 4.46 kB -
7019-HASH.js gzip N/A 5.43 kB -
b17a3386-HASH.js gzip N/A 62.3 kB -
Total 225 kB 225 kB ✅ -11 B
Polyfills
Canary PR Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Total 39.4 kB 39.4 kB
Pages
Canary PR Change
_app-HASH.js gzip 194 B 193 B
_error-HASH.js gzip 182 B 182 B
css-HASH.js gzip 336 B 335 B
dynamic-HASH.js gzip 1.8 kB 1.8 kB
edge-ssr-HASH.js gzip 256 B 256 B
head-HASH.js gzip 352 B 349 B
hooks-HASH.js gzip 385 B 384 B
image-HASH.js gzip 580 B 580 B
index-HASH.js gzip 259 B 258 B
link-HASH.js gzip 2.5 kB 2.51 kB
routerDirect..HASH.js gzip 319 B 317 B
script-HASH.js gzip 385 B 387 B
withRouter-HASH.js gzip 316 B 315 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Total 7.97 kB 7.96 kB ✅ -8 B

Server

Edge SSR
Canary PR Change
edge-ssr.js gzip 125 kB 125 kB
page.js gzip 242 kB 237 kB 🟢 4.88 kB (-2%)
Total 366 kB 362 kB ✅ -4.87 kB
Middleware
Canary PR Change
middleware-b..fest.js gzip 657 B 653 B
middleware-r..fest.js gzip 155 B 156 B
middleware.js gzip 32.9 kB 33.3 kB 🔴 +395 B (+1%)
edge-runtime..pack.js gzip 842 B 842 B
Total 34.6 kB 35 kB ⚠️ +392 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 738 B 738 B
Total 738 B 738 B
Build Cache
Canary PR Change
0.pack gzip 3.66 MB 3.67 MB 🔴 +7.4 kB (+0%)
index.pack gzip 99.7 kB 99.4 kB
index.pack.old gzip 98.3 kB 98.8 kB
Total 3.86 MB 3.86 MB ⚠️ +7.55 kB

🔄 Shared (bundler-independent)

Runtimes
Canary PR Change
app-page-exp...dev.js gzip 303 kB 303 kB
app-page-exp..prod.js gzip 158 kB 158 kB
app-page-tur...dev.js gzip 303 kB 303 kB
app-page-tur..prod.js gzip 158 kB 158 kB
app-page-tur...dev.js gzip 300 kB 300 kB
app-page-tur..prod.js gzip 156 kB 156 kB
app-page.run...dev.js gzip 300 kB 300 kB
app-page.run..prod.js gzip 156 kB 156 kB
app-route-ex...dev.js gzip 68.8 kB 68.8 kB
app-route-ex..prod.js gzip 47.6 kB 47.6 kB
app-route-tu...dev.js gzip 68.8 kB 68.8 kB
app-route-tu..prod.js gzip 47.6 kB 47.6 kB
app-route-tu...dev.js gzip 68.4 kB 68.4 kB
app-route-tu..prod.js gzip 47.4 kB 47.4 kB
app-route.ru...dev.js gzip 68.4 kB 68.4 kB
app-route.ru..prod.js gzip 47.3 kB 47.3 kB
dist_client_...dev.js gzip 324 B 324 B
dist_client_...dev.js gzip 326 B 326 B
dist_client_...dev.js gzip 318 B 318 B
dist_client_...dev.js gzip 317 B 317 B
pages-api-tu...dev.js gzip 41.2 kB 41.2 kB
pages-api-tu..prod.js gzip 31.3 kB 31.3 kB
pages-api.ru...dev.js gzip 41.1 kB 41.1 kB
pages-api.ru..prod.js gzip 31.2 kB 31.2 kB
pages-turbo....dev.js gzip 50.8 kB 50.8 kB
pages-turbo...prod.js gzip 38.2 kB 38.2 kB
pages.runtim...dev.js gzip 50.7 kB 50.7 kB
pages.runtim..prod.js gzip 38.2 kB 38.2 kB
server.runti..prod.js gzip 62.2 kB 62.2 kB
Total 2.69 MB 2.69 MB ✅ -2 B

@sokra sokra force-pushed the sokra/chunk-item-id-selective branch from 38833eb to df2c985 Compare January 13, 2026 15:43
@sokra sokra force-pushed the sokra/aggregation-update-tracing branch from 9dabe82 to ba27300 Compare January 13, 2026 15:43
@codspeed-hq
Copy link

codspeed-hq bot commented Jan 13, 2026

Merging this PR will not alter performance

✅ 17 untouched benchmarks
⏩ 3 skipped benchmarks1


Comparing sokra/chunk-item-id-selective (d0eed51) with canary (125b7d8)2

Open in CodSpeed

Footnotes

  1. 3 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

  2. No successful run was found on sokra/aggregation-update-tracing (2c0d6b2) during the generation of this report, so canary (125b7d8) was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Jan 13, 2026

Failing test suites

Commit: df2c985 | About building and testing Next.js

pnpm test test/integration/gssp-redirect-with-rewrites/test/index.test.ts (turbopack) (job)

  • create-next-app --api (Headless App) > should create JavaScript project with --js flag (DD)
  • create-next-app --api (Headless App) > should create TypeScript project with --ts flag (DD)
  • create-next-app --api (Headless App) > should create project inside "src" directory with --src-dir flag (DD)
  • create-next-app --api (Headless App) > should enable webpack dev with --webpack flag (DD)
Expand output

● create-next-app --api (Headless App) › should create JavaScript project with --js flag

FetchError: request to http://localhost:40667/ failed, reason: socket hang up

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

● create-next-app --api (Headless App) › should create TypeScript project with --ts flag

FetchError: request to http://localhost:34105/ failed, reason: socket hang up

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

● create-next-app --api (Headless App) › should create project inside "src" directory with --src-dir flag

FetchError: request to http://localhost:45543/ failed, reason: socket hang up

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

● create-next-app --api (Headless App) › should enable webpack dev with --webpack flag

FetchError: request to http://localhost:41573/ failed, reason: socket hang up

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

pnpm test-dev test/e2e/app-dir/next-config-ts-native-ts/export-as-default/next-config-ts-export-as-default-esm.test.ts (job)

  • next-config-ts-type-error-esm > should throw with type error on build (ESM) (DD)
Expand output

● next-config-ts-type-error-esm › should throw with type error on build (ESM)

FetchError: request to http://localhost:35867/ failed, reason: socket hang up

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

pnpm test test/integration/image-optimizer/test/sharp.test.ts (turbopack) (job)

  • turbopack unsupported features log > should not warn by default (DD)
  • turbopack unsupported features log > should not warn with empty next.config.js (DD)
  • turbopack unsupported features log > should warn with next.config.js with unsupported field (DD)
Expand output

● turbopack unsupported features log › should not warn by default

FetchError: request to http://localhost:39219/ failed, reason: socket hang up

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

● turbopack unsupported features log › should not warn with empty next.config.js

FetchError: request to http://localhost:38459/ failed, reason: socket hang up

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

● turbopack unsupported features log › should warn with next.config.js with unsupported field

TIMED OUT: /success/

undefined

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

Expected substring: "You are using configuration and/or tools that are not yet"
Received string:    "▲ Next.js 16.1.1-canary.24 (Turbopack)
- Local:         http://[::1]:46183
- Network:       http://[::]:46183
✓ Ready in 200ms
Creating turbopack project {
  dir: '/root/actions-runner/_work/next.js/next.js/test/integration/turbopack-unsupported-log/app',
  testMode: true
}·
thread 'tokio-runtime-worker' (3148181) panicked at turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs:681:14:
To read data of Meta the task need to be accessed with this category (It's accessed with Data)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FATAL: An unexpected Turbopack error occurred:
To read data of Meta the task need to be accessed with this category (It's accessed with Data)·
Debug info:
- Execution of ProjectContainer::project failed
- To read data of Meta the task need to be accessed with this category (It's accessed with Data)
Error [TurbopackInternalError]: To read data of Meta the task need to be accessed with this category (It's accessed with Data)·
Debug info:
- Execution of ProjectContainer::project failed
- To read data of Meta the task need to be accessed with this category (It's accessed with Data)
    at <unknown> (TurbopackInternalError: To read data of Meta the task need to be accessed with this category (It's accessed with Data)) {
  location: 'turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs:681:14'
}

"

  724 |   }
  725 |   console.error('TIMED OUT CHECK: ', { regex, content, lastErr })
> 726 |   throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |         ^
  727 | }
  728 |
  729 | export class File {

  at check (lib/next-test-utils.ts:726:9)
  at Object.<anonymous> (integration/turbopack-unsupported-log/index.test.ts:86:9)

pnpm test test/integration/500-page/test/gsp-gssp.test.ts (turbopack) (job)

  • create-next-app --app (App Router) > should create JavaScript project with --js flag (DD)
  • create-next-app --app (App Router) > should create TypeScript project with --ts flag (DD)
  • create-next-app --app (App Router) > should create project inside "src" directory with --src-dir flag (DD)
  • create-next-app --app (App Router) > should create TailwindCSS project with --tailwind flag (DD)
  • create-next-app --app (App Router) > should create an empty project with --empty flag (DD)
  • create-next-app --app (App Router) > should create an empty TailwindCSS project with --empty flag (DD)
Expand output

● create-next-app --app (App Router) › should create JavaScript project with --js flag

FetchError: request to http://localhost:42071/ failed, reason: socket hang up

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

● create-next-app --app (App Router) › should create TypeScript project with --ts flag

FetchError: request to http://localhost:42001/ failed, reason: socket hang up

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

● create-next-app --app (App Router) › should create project inside "src" directory with --src-dir flag

FetchError: request to http://localhost:38445/ failed, reason: socket hang up

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

● create-next-app --app (App Router) › should create TailwindCSS project with --tailwind flag

FetchError: request to http://localhost:39843/ failed, reason: socket hang up

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

● create-next-app --app (App Router) › should create an empty project with --empty flag

FetchError: request to http://localhost:35091/ failed, reason: socket hang up

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

● create-next-app --app (App Router) › should create an empty TailwindCSS project with --empty flag

FetchError: request to http://localhost:45215/ failed, reason: socket hang up

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

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

  • FileSystemPublicRoutes > should not route to the index page (DD)
  • FileSystemPublicRoutes > should route to exportPathMap defined routes in development (DD)
  • FileSystemPublicRoutes > should serve JavaScript files correctly (DD)
  • FileSystemPublicRoutes > should route to public folder files (DD)
Expand output

● FileSystemPublicRoutes › should not route to the index page

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

  21 |
  22 | describe('FileSystemPublicRoutes', () => {
> 23 |   beforeAll(() => startServer())
     |   ^
  24 |   afterAll(() => killApp(server))
  25 |
  26 |   const fetch = (p, q?: any) => fetchViaHTTP(context.appPort, p, q)

  at beforeAll (integration/filesystempublicroutes/test/index.test.ts:23:3)
  at Object.describe (integration/filesystempublicroutes/test/index.test.ts:22:1)

● FileSystemPublicRoutes › should route to exportPathMap defined routes in development

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

  21 |
  22 | describe('FileSystemPublicRoutes', () => {
> 23 |   beforeAll(() => startServer())
     |   ^
  24 |   afterAll(() => killApp(server))
  25 |
  26 |   const fetch = (p, q?: any) => fetchViaHTTP(context.appPort, p, q)

  at beforeAll (integration/filesystempublicroutes/test/index.test.ts:23:3)
  at Object.describe (integration/filesystempublicroutes/test/index.test.ts:22:1)

● FileSystemPublicRoutes › should serve JavaScript files correctly

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

  21 |
  22 | describe('FileSystemPublicRoutes', () => {
> 23 |   beforeAll(() => startServer())
     |   ^
  24 |   afterAll(() => killApp(server))
  25 |
  26 |   const fetch = (p, q?: any) => fetchViaHTTP(context.appPort, p, q)

  at beforeAll (integration/filesystempublicroutes/test/index.test.ts:23:3)
  at Object.describe (integration/filesystempublicroutes/test/index.test.ts:22:1)

● FileSystemPublicRoutes › should route to public folder files

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

  21 |
  22 | describe('FileSystemPublicRoutes', () => {
> 23 |   beforeAll(() => startServer())
     |   ^
  24 |   afterAll(() => killApp(server))
  25 |
  26 |   const fetch = (p, q?: any) => fetchViaHTTP(context.appPort, p, q)

  at beforeAll (integration/filesystempublicroutes/test/index.test.ts:23:3)
  at Object.describe (integration/filesystempublicroutes/test/index.test.ts:22:1)

pnpm test test/integration/development-hmr-refresh/test/index.test.ts (turbopack) (job)

  • create-next-app --app (App Router) > should create JavaScript project with --js flag (DD)
  • create-next-app --app (App Router) > should create TypeScript project with --ts flag (DD)
  • create-next-app --app (App Router) > should create project inside "src" directory with --src-dir flag (DD)
  • create-next-app --app (App Router) > should create TailwindCSS project with --tailwind flag (DD)
  • create-next-app --app (App Router) > should create an empty project with --empty flag (DD)
  • create-next-app --app (App Router) > should create an empty TailwindCSS project with --empty flag (DD)
Expand output

● create-next-app --app (App Router) › should create JavaScript project with --js flag

FetchError: request to http://localhost:40181/ failed, reason: socket hang up

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

● create-next-app --app (App Router) › should create TypeScript project with --ts flag

FetchError: request to http://localhost:40405/ failed, reason: socket hang up

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

● create-next-app --app (App Router) › should create project inside "src" directory with --src-dir flag

FetchError: request to http://localhost:44183/ failed, reason: socket hang up

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

● create-next-app --app (App Router) › should create TailwindCSS project with --tailwind flag

FetchError: request to http://localhost:37983/ failed, reason: socket hang up

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

● create-next-app --app (App Router) › should create an empty project with --empty flag

FetchError: request to http://localhost:41961/ failed, reason: socket hang up

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

● create-next-app --app (App Router) › should create an empty TailwindCSS project with --empty flag

FetchError: request to http://localhost:43257/ failed, reason: socket hang up

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

pnpm test test/integration/bigint/test/index.test.ts (turbopack) (job)

  • SSG data 404 > development mode > should hard navigate when a new deployment occurs (DD)
Expand output

● SSG data 404 › development mode › should hard navigate when a new deployment occurs

connect ECONNREFUSED 127.0.0.1:36163

● SSG data 404 › development mode › should hard navigate when a new deployment occurs

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."

  22 |
  23 | const runTests = () => {
> 24 |   it('should hard navigate when a new deployment occurs', async () => {
     |   ^
  25 |     const browser = await webdriver(proxyPort, '/')
  26 |
  27 |     await browser.eval('window.beforeNav = 1')

  at it (integration/ssg-data-404/test/index.test.ts:24:3)
  at runTests (integration/ssg-data-404/test/index.test.ts:90:7)
  at integration/ssg-data-404/test/index.test.ts:55:58
  at Object.describe (integration/ssg-data-404/test/index.test.ts:49:1)

pnpm test-dev-turbo test/development/acceptance-app/ReactRefreshLogBoxMisc.test.ts (turbopack) (job)

  • Middleware can set the matcher in its config > does add the header for root request (DD)
  • Middleware can set the matcher in its config > adds the header for a matched path (DD)
  • Middleware can set the matcher in its config > adds the header for a matched data path (with header) (DD)
  • Middleware can set the matcher in its config > adds the header for a matched data path (without header) (DD)
  • Middleware can set the matcher in its config > adds the header for another matched path (DD)
  • Middleware can set the matcher in its config > adds the header for another matched data path (DD)
  • Middleware can set the matcher in its config > does add the header for root data request (DD)
  • Middleware can set the matcher in its config > should load matches in client matchers correctly (DD)
  • Middleware can set the matcher in its config > should navigate correctly with matchers (DD)
  • using a single matcher > does not add the header for root request (DD)
  • using a single matcher > does not add the header for root data request (DD)
  • using a single matcher > adds the header for a matched path (DD)
  • using a single matcher > adds the headers for a matched data path (with header) (DD)
  • using a single matcher > adds the header for a matched data path (without header) (DD)
  • using a single matcher > does not add the header for an unmatched path (DD)
  • using a single matcher with i18n > adds the header for a matched path (DD)
  • using a single matcher with i18n > adds the header for a mathed root path with /index (DD)
  • using a single matcher with i18n > adds the headers for a matched data path (DD)
  • using a single matcher with i18n > does not add the header for an unmatched path (DD)
  • using a single matcher with i18n and basePath > adds the header for a matched path (DD)
  • using a single matcher with i18n and basePath > adds the header for a mathed root path with /index (DD)
  • using a single matcher with i18n and basePath > adds the headers for a matched data path (DD)
  • using a single matcher with i18n and basePath > does not add the header for an unmatched path (DD)
  • using a single matcher with i18n and basePath and trailingSlash > adds the header for a matched path (DD)
  • using a single matcher with i18n and basePath and trailingSlash > adds the header for a mathed root path with /index (DD)
  • using a single matcher with i18n and basePath and trailingSlash > adds the headers for a matched data path (DD)
  • using a single matcher with i18n and basePath and trailingSlash > does not add the header for an unmatched path (DD)
  • using a single matcher with i18n and trailingSlash > adds the header for a matched path (DD)
  • using a single matcher with i18n and trailingSlash > adds the header for a mathed root path with /index (DD)
  • using a single matcher with i18n and trailingSlash > adds the headers for a matched data path (DD)
  • using a single matcher with i18n and trailingSlash > does not add the header for an unmatched path (DD)
  • using root matcher > adds the header to the / (DD)
  • using root matcher > adds the header to the /index (DD)
  • using root matcher > adds the header for a matched data path (with header) (DD)
  • using root matcher > adds the header for a matched data path (without header) (DD)
Expand output

● Middleware can set the matcher in its config › does add the header for root request

FetchError: request to http://localhost:46447/ failed, reason: socket hang up

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

● Middleware can set the matcher in its config › adds the header for a matched path

FetchError: request to http://localhost:46447/with-middleware failed, reason: connect ECONNREFUSED 127.0.0.1:46447

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

● Middleware can set the matcher in its config › adds the header for a matched data path (with header)

FetchError: request to http://localhost:46447/_next/data/development/with-middleware.json failed, reason: connect ECONNREFUSED 127.0.0.1:46447

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

● Middleware can set the matcher in its config › adds the header for a matched data path (without header)

FetchError: request to http://localhost:46447/_next/data/development/with-middleware.json failed, reason: connect ECONNREFUSED 127.0.0.1:46447

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

● Middleware can set the matcher in its config › adds the header for another matched path

FetchError: request to http://localhost:46447/another-middleware failed, reason: connect ECONNREFUSED 127.0.0.1:46447

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

● Middleware can set the matcher in its config › adds the header for another matched data path

FetchError: request to http://localhost:46447/_next/data/development/another-middleware.json failed, reason: connect ECONNREFUSED 127.0.0.1:46447

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

● Middleware can set the matcher in its config › does add the header for root data request

FetchError: request to http://localhost:46447/_next/data/development/index.json failed, reason: connect ECONNREFUSED 127.0.0.1:46447

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

● Middleware can set the matcher in its config › should load matches in client matchers correctly

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

  343 |     await opts?.beforePageLoad?.(page)
  344 |
> 345 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  346 |   }
  347 |
  348 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:345:16)
  at webdriver (lib/next-webdriver.ts:156:3)
  at Object.<anonymous> (e2e/middleware-matcher/index.test.ts:97:21)

● Middleware can set the matcher in its config › should navigate correctly with matchers

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

  343 |     await opts?.beforePageLoad?.(page)
  344 |
> 345 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  346 |   }
  347 |
  348 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:345:16)
  at webdriver (lib/next-webdriver.ts:156:3)
  at Object.<anonymous> (e2e/middleware-matcher/index.test.ts:115:21)

● using a single matcher › does not add the header for root request

FetchError: request to http://localhost:41021/ failed, reason: socket hang up

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

● using a single matcher › does not add the header for root data request

FetchError: request to http://localhost:41021/_next/data/development/index.json failed, reason: connect ECONNREFUSED 127.0.0.1:41021

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

● using a single matcher › adds the header for a matched path

FetchError: request to http://localhost:41021/middleware/works failed, reason: connect ECONNREFUSED 127.0.0.1:41021

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

● using a single matcher › adds the headers for a matched data path (with header)

FetchError: request to http://localhost:41021/_next/data/development/middleware/works.json failed, reason: connect ECONNREFUSED 127.0.0.1:41021

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

● using a single matcher › adds the header for a matched data path (without header)

FetchError: request to http://localhost:41021/_next/data/development/middleware/works.json failed, reason: connect ECONNREFUSED 127.0.0.1:41021

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

● using a single matcher › does not add the header for an unmatched path

FetchError: request to http://localhost:41021/about/me failed, reason: connect ECONNREFUSED 127.0.0.1:41021

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

● using root matcher › adds the header to the /

FetchError: request to http://localhost:36535/ failed, reason: socket hang up

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

● using root matcher › adds the header to the /index

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

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

● using root matcher › adds the header for a matched data path (with header)

FetchError: request to http://localhost:36535/_next/data/development/index.json failed, reason: connect ECONNREFUSED 127.0.0.1:36535

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

● using root matcher › adds the header for a matched data path (without header)

FetchError: request to http://localhost:36535/_next/data/development/index.json failed, reason: connect ECONNREFUSED 127.0.0.1:36535

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

● using a single matcher with i18n › adds the header for a matched path

FetchError: request to http://localhost:45795/ failed, reason: socket hang up

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

● using a single matcher with i18n › adds the header for a mathed root path with /index

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

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

● using a single matcher with i18n › adds the headers for a matched data path

FetchError: request to http://localhost:45795/_next/data/development/en.json failed, reason: connect ECONNREFUSED 127.0.0.1:45795

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

● using a single matcher with i18n › does not add the header for an unmatched path

FetchError: request to http://localhost:45795/about/me failed, reason: connect ECONNREFUSED 127.0.0.1:45795

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

● using a single matcher with i18n and trailingSlash › adds the header for a matched path

FetchError: request to http://localhost:43995/ failed, reason: socket hang up

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

● using a single matcher with i18n and trailingSlash › adds the header for a mathed root path with /index

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

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

● using a single matcher with i18n and trailingSlash › adds the headers for a matched data path

FetchError: request to http://localhost:43995/_next/data/development/en.json failed, reason: connect ECONNREFUSED 127.0.0.1:43995

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

● using a single matcher with i18n and trailingSlash › does not add the header for an unmatched path

FetchError: request to http://localhost:43995/about/me failed, reason: connect ECONNREFUSED 127.0.0.1:43995

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

● using a single matcher with i18n and basePath › adds the header for a matched path

FetchError: request to http://localhost:42763/root failed, reason: socket hang up

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

● using a single matcher with i18n and basePath › adds the header for a mathed root path with /index

FetchError: request to http://localhost:42763/root/index failed, reason: connect ECONNREFUSED 127.0.0.1:42763

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

● using a single matcher with i18n and basePath › adds the headers for a matched data path

FetchError: request to http://localhost:42763/root/_next/data/development/en.json failed, reason: connect ECONNREFUSED 127.0.0.1:42763

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

● using a single matcher with i18n and basePath › does not add the header for an unmatched path

FetchError: request to http://localhost:42763/root/about/me failed, reason: connect ECONNREFUSED 127.0.0.1:42763

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

● using a single matcher with i18n and basePath and trailingSlash › adds the header for a matched path

FetchError: request to http://localhost:46075/root failed, reason: socket hang up

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

● using a single matcher with i18n and basePath and trailingSlash › adds the header for a mathed root path with /index

FetchError: request to http://localhost:46075/root/index failed, reason: connect ECONNREFUSED 127.0.0.1:46075

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

● using a single matcher with i18n and basePath and trailingSlash › adds the headers for a matched data path

FetchError: request to http://localhost:46075/root/_next/data/development/en.json failed, reason: connect ECONNREFUSED 127.0.0.1:46075

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

● using a single matcher with i18n and basePath and trailingSlash › does not add the header for an unmatched path

FetchError: request to http://localhost:46075/root/about/me failed, reason: connect ECONNREFUSED 127.0.0.1:46075

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

pnpm test-dev-turbo test/development/dev-cache-control-no-cache/dev-cache-control-no-cache.test.ts (turbopack) (job)

  • filesystem-caching with cache disabled > should cache or not cache loaders (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (RSC change) (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (RCC change) (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (Pages change) (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (rename app page) (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (next config change) (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (env var change) (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change) (DD)
  • filesystem-caching with cache enabled > should cache or not cache loaders (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (RSC change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (RCC change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (Pages change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (rename app page) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (next config change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (env var change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change) (DD)
Expand output

● filesystem-caching with cache disabled › should cache or not cache loaders

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

  343 |     await opts?.beforePageLoad?.(page)
  344 |
> 345 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  346 |   }
  347 |
  348 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:345:16)
  at webdriver (lib/next-webdriver.ts:156:3)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:75:27)

● filesystem-caching with cache disabled › should allow to change files while stopped (RSC change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache disabled › should allow to change files while stopped (RCC change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache disabled › should allow to change files while stopped (Pages change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache disabled › should allow to change files while stopped (rename app page)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache disabled › should allow to change files while stopped (next config change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.textCheck [as checkInitial] (e2e/filesystem-cache/filesystem-cache.test.ts:222:17)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache disabled › should allow to change files while stopped (env var change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.textCheck [as checkInitial] (e2e/filesystem-cache/filesystem-cache.test.ts:234:17)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache disabled › should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache enabled › should cache or not cache loaders

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

  343 |     await opts?.beforePageLoad?.(page)
  344 |
> 345 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  346 |   }
  347 |
  348 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:345:16)
  at webdriver (lib/next-webdriver.ts:156:3)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:75:27)

● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change)

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

  343 |     await opts?.beforePageLoad?.(page)
  344 |
> 345 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  346 |   }
  347 |
  348 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:345:16)
  at webdriver (lib/next-webdriver.ts:156:3)
  at textCheck (e2e/filesystem-cache/filesystem-cache.test.ts:152:23)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:269:13)

● filesystem-caching with cache enabled › should allow to change files while stopped (RCC change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache enabled › should allow to change files while stopped (Pages change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache enabled › should allow to change files while stopped (rename app page)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache enabled › should allow to change files while stopped (next config change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.textCheck [as checkInitial] (e2e/filesystem-cache/filesystem-cache.test.ts:222:17)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache enabled › should allow to change files while stopped (env var change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.textCheck [as checkInitial] (e2e/filesystem-cache/filesystem-cache.test.ts:234:17)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

pnpm test-dev-turbo test/development/app-dir/turbopack-loader-file-dependencies/turbopack-loader-file-dependencies.test.ts (turbopack) (job)

  • next-image-proxy > loads images without any errors (DD)
  • next-image-proxy > should work with connection upgrade by removing it via filterReqHeaders() (DD)
Expand output

● next-image-proxy › loads images without any errors

Failed to proxy: connect ECONNREFUSED 127.0.0.1:35533

  44 |
  45 |     proxy.on('error', (err) => {
> 46 |       throw new Error('Failed to proxy: ' + err.message)
     |             ^
  47 |     })
  48 |
  49 |     await new Promise<void>((resolve) => {

  at ProxyServer.<anonymous> (e2e/app-dir/next-image/next-image-proxy.test.ts:46:13)
  at ProxyServer.emit (../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js:210:27)
  at ClientRequest.proxyError (../node_modules/.pnpm/http-proxy@1.18.1/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js:165:18)

● next-image-proxy › loads images without any errors

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "https://localhost:44391/", waiting until "load"

  343 |     await opts?.beforePageLoad?.(page)
  344 |
> 345 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  346 |   }
  347 |
  348 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:345:16)
  at webdriver (lib/next-webdriver.ts:156:3)
  at Object.<anonymous> (e2e/app-dir/next-image/next-image-proxy.test.ts:58:21)

● next-image-proxy › should work with connection upgrade by removing it via filterReqHeaders()

No child process available

  108 |
  109 |   it('should work with connection upgrade by removing it via filterReqHeaders()', async () => {
> 110 |     const $ = await next.render$('/')
      |                          ^
  111 |     const url1 = $('#app-page').attr('src')
  112 |     const opts = { headers: { connection: 'upgrade' } }
  113 |     const res1 = await next.fetch(url1, opts)

  at Object.render$ (e2e/app-dir/next-image/next-image-proxy.test.ts:110:26)

pnpm test test/integration/app-document-remove-hmr/test/index.test.ts (turbopack) (job)

  • should parse JSON body (DD)

  • should not throw if request body is already parsed in custom middleware (DD)

  • should not throw if request's content-type is invalid (DD)

Expand output

● should parse JSON body

FetchError: request to http://localhost:35205/api failed, reason: socket hang up

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

● should not throw if request body is already parsed in custom middleware

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."

  28 |   })
  29 |
> 30 |   it('should not throw if request body is already parsed in custom middleware', async () => {
     |   ^
  31 |     await startServer()
  32 |     const data = await makeRequest()
  33 |     expect(data).toEqual([{ title: 'Nextjs' }])

  at it (integration/api-body-parser/test/index.test.ts:30:3)
  at Object.runTests (integration/api-body-parser/test/index.test.ts:87:1)

● should not throw if request's content-type is invalid

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."

  35 |   })
  36 |
> 37 |   it("should not throw if request's content-type is invalid", async () => {
     |   ^
  38 |     await startServer()
  39 |     const status = await makeRequestWithInvalidContentType()
  40 |     expect(status).toBe(200)

  at it (integration/api-body-parser/test/index.test.ts:37:3)
  at Object.runTests (integration/api-body-parser/test/index.test.ts:87:1)

pnpm test-dev test/e2e/app-dir/next-config-ts-native-ts/export-default/next-config-ts-export-default-cjs.test.ts (job)

  • next-config-ts-type-error-esm > should throw with type error on build (ESM) (DD)
Expand output

● next-config-ts-type-error-esm › should throw with type error on build (ESM)

FetchError: request to http://localhost:36961/ failed, reason: socket hang up

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

pnpm test test/integration/config/test/index.test.ts (turbopack) (job)

  • Custom routes > no-op rewrite > should not error for no-op rewrite and auto export dynamic route (DD)
Expand output

● Custom routes › no-op rewrite › should not error for no-op rewrite and auto export dynamic route

page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:45209/auto-export/my-slug
Call log:
  - navigating to "http://localhost:45209/auto-export/my-slug", waiting until "load"

  343 |     await opts?.beforePageLoad?.(page)
  344 |
> 345 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  346 |   }
  347 |
  348 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:345:16)
  at webdriver (lib/next-webdriver.ts:156:3)
  at Object.<anonymous> (integration/custom-routes/test/index.test.ts:2638:23)

pnpm test test/integration/compression/test/index.test.ts (turbopack) (job)

  • Dynamic Optional Routing > development mode > invalid pages > should fail to build when optional route has index.js at root (DD)
  • Dynamic Optional Routing > development mode > invalid pages > should fail to build when optional route has same page at root (DD)
  • Dynamic Optional Routing > development mode > invalid pages > should fail to build when mixed with regular catch-all (DD)
  • Dynamic Optional Routing > development mode > invalid pages > should fail to build when optional but no catch-all (DD)
  • Dynamic Optional Routing > development mode > rendering > should render catch-all top-level route with multiple segments (DD)
  • Dynamic Optional Routing > development mode > rendering > should render catch-all top-level route with single segment (DD)
  • Dynamic Optional Routing > development mode > rendering > should render catch-all top-level route with no segments (DD)
  • Dynamic Optional Routing > development mode > rendering > should render catch-all nested route with multiple segments (DD)
  • Dynamic Optional Routing > development mode > rendering > should render catch-all nested route with single segment (DD)
  • Dynamic Optional Routing > development mode > rendering > should render catch-all nested route with no segments (DD)
  • Dynamic Optional Routing > development mode > rendering > should render catch-all nested route with no segments and leading slash (DD)
  • Dynamic Optional Routing > development mode > rendering > should match catch-all api route with multiple segments (DD)
  • Dynamic Optional Routing > development mode > rendering > should match catch-all api route with single segment (DD)
  • Dynamic Optional Routing > development mode > rendering > should match catch-all api route with no segments (DD)
  • Dynamic Optional Routing > development mode > rendering > should match catch-all api route with no segments and leading slash (DD)
  • Dynamic Optional Routing > development mode > rendering > should handle getStaticPaths no segments (DD)
  • Dynamic Optional Routing > development mode > rendering > should handle getStaticPaths no segments and trailing slash (DD)
  • Dynamic Optional Routing > development mode > rendering > should handle getStaticPaths 1 segment (DD)
  • Dynamic Optional Routing > development mode > rendering > should handle getStaticPaths 1 segment and trailing slash (DD)
  • Dynamic Optional Routing > development mode > rendering > should handle getStaticPaths 2 segments (DD)
  • Dynamic Optional Routing > development mode > rendering > should handle getStaticPaths 2 segments and trailing slash (DD)
  • Dynamic Optional Routing > development mode > rendering > should fall back to top-level catch-all (DD)
  • Dynamic Optional Routing > development mode > rendering > should match root path on undefined param (DD)
  • Dynamic Optional Routing > development mode > rendering > should match root path on false param (DD)
  • Dynamic Optional Routing > development mode > rendering > should match root path on null param (DD)
  • Dynamic Optional Routing > development mode > rendering > should handle getStaticPaths with fallback no segments (DD)
  • Dynamic Optional Routing > development mode > rendering > should handle getStaticPaths with fallback 2 segments (DD)
  • Dynamic Optional Routing > development mode > rendering > should fallback correctly when fallback enabled (DD)
Expand output

● Dynamic Optional Routing › development mode › rendering › should render catch-all top-level route with multiple segments

FetchError: request to http://localhost:37831/hello/world failed, reason: socket hang up

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

● Dynamic Optional Routing › development mode › rendering › should render catch-all top-level route with single segment

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

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

● Dynamic Optional Routing › development mode › rendering › should render catch-all top-level route with no segments

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

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

● Dynamic Optional Routing › development mode › rendering › should render catch-all nested route with multiple segments

FetchError: request to http://localhost:37831/nested/hello/world failed, reason: connect ECONNREFUSED 127.0.0.1:37831

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

● Dynamic Optional Routing › development mode › rendering › should render catch-all nested route with single segment

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

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

● Dynamic Optional Routing › development mode › rendering › should render catch-all nested route with no segments

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

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

● Dynamic Optional Routing › development mode › rendering › should render catch-all nested route with no segments and leading slash

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

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

● Dynamic Optional Routing › development mode › rendering › should match catch-all api route with multiple segments

FetchError: request to http://localhost:37831/api/post/ab/cd failed, reason: connect ECONNREFUSED 127.0.0.1:37831

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

● Dynamic Optional Routing › development mode › rendering › should match catch-all api route with single segment

FetchError: request to http://localhost:37831/api/post/a failed, reason: connect ECONNREFUSED 127.0.0.1:37831

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

● Dynamic Optional Routing › development mode › rendering › should match catch-all api route with no segments

FetchError: request to http://localhost:37831/api/post failed, reason: connect ECONNREFUSED 127.0.0.1:37831

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

● Dynamic Optional Routing › development mode › rendering › should match catch-all api route with no segments and leading slash

FetchError: request to http://localhost:37831/api/post/ failed, reason: connect ECONNREFUSED 127.0.0.1:37831

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

● Dynamic Optional Routing › development mode › rendering › should handle getStaticPaths no segments

FetchError: request to http://localhost:37831/get-static-paths failed, reason: connect ECONNREFUSED 127.0.0.1:37831

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

● Dynamic Optional Routing › development mode › rendering › should handle getStaticPaths no segments and trailing slash

FetchError: request to http://localhost:37831/get-static-paths/ failed, reason: connect ECONNREFUSED 127.0.0.1:37831

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

● Dynamic Optional Routing › development mode › rendering › should handle getStaticPaths 1 segment

FetchError: request to http://localhost:37831/get-static-paths/p1 failed, reason: connect ECONNREFUSED 127.0.0.1:37831

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

● Dynamic Optional Routing › development mode › rendering › should handle getStaticPaths 1 segment and trailing slash

FetchError: request to http://localhost:37831/get-static-paths/p1/ failed, reason: connect ECONNREFUSED 127.0.0.1:37831

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

● Dynamic Optional Routing › development mode › rendering › should handle getStaticPaths 2 segments

FetchError: request to http://localhost:37831/get-static-paths/p2/p3 failed, reason: connect ECONNREFUSED 127.0.0.1:37831

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

● Dynamic Optional Routing › development mode › rendering › should handle getStaticPaths 2 segments and trailing slash

FetchError: request to http://localhost:37831/get-static-paths/p2/p3/ failed, reason: connect ECONNREFUSED 127.0.0.1:37831

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

● Dynamic Optional Routing › development mode › rendering › should fall back to top-level catch-all

FetchError: request to http://localhost:37831/get-static-paths/hello/world failed, reason: connect ECONNREFUSED 127.0.0.1:37831

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

● Dynamic Optional Routing › development mode › rendering › should match root path on undefined param

FetchError: request to http://localhost:37831/get-static-paths-undefined failed, reason: connect ECONNREFUSED 127.0.0.1:37831

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

● Dynamic Optional Routing › development mode › rendering › should match root path on false param

FetchError: request to http://localhost:37831/get-static-paths-false failed, reason: connect ECONNREFUSED 127.0.0.1:37831

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

● Dynamic Optional Routing › development mode › rendering › should match root path on null param

FetchError: request to http://localhost:37831/get-static-paths-null failed, reason: connect ECONNREFUSED 127.0.0.1:37831

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

● Dynamic Optional Routing › development mode › rendering › should handle getStaticPaths with fallback no segments

FetchError: request to http://localhost:37831/get-static-paths-fallback failed, reason: connect ECONNREFUSED 127.0.0.1:37831

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

● Dynamic Optional Routing › development mode › rendering › should handle getStaticPaths with fallback 2 segments

FetchError: request to http://localhost:37831/get-static-paths-fallback/p2/p3 failed, reason: connect ECONNREFUSED 127.0.0.1:37831

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

● Dynamic Optional Routing › development mode › rendering › should fallback correctly when fallback enabled

FetchError: request to http://localhost:37831/get-static-paths-fallback/hello/world failed, reason: connect ECONNREFUSED 127.0.0.1:37831

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

● Dynamic Optional Routing › development mode › invalid pages › should fail to build when optional route has index.js at root

TIMED OUT: /You cannot define a route with the same specificity as a optional catch-all route/


thread 'tokio-runtime-worker' (1070890) panicked at turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs:681:14:
To read data of Meta the task need to be accessed with this category (It's accessed with Data)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FATAL: An unexpected Turbopack error occurred:
To read data of Meta the task need to be accessed with this category (It's accessed with Data)

Debug info:
- Execution of ProjectContainer::project failed
- To read data of Meta the task need to be accessed with this category (It's accessed with Data)
Error [TurbopackInternalError]: To read data of Meta the task need to be accessed with this category (It's accessed with Data)

Debug info:
- Execution of ProjectContainer::project failed
- To read data of Meta the task need to be accessed with this category (It's accessed with Data)
    at <unknown> (TurbopackInternalError: To read data of Meta the task need to be accessed with this category (It's accessed with Data)) {
  location: 'turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs:681:14'
}


undefined

  724 |   }
  725 |   console.error('TIMED OUT CHECK: ', { regex, content, lastErr })
> 726 |   throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |         ^
  727 | }
  728 |
  729 | export class File {

  at check (lib/next-test-utils.ts:726:9)
  at Object.<anonymous> (integration/dynamic-optional-routing/test/index.test.ts:190:7)

● Dynamic Optional Routing › development mode › invalid pages › should fail to build when optional route has same page at root

TIMED OUT: /You cannot define a route with the same specificity as a optional catch-all route/


thread 'tokio-runtime-worker' (1070968) panicked at turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs:681:14:
To read data of Meta the task need to be accessed with this category (It's accessed with Data)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FATAL: An unexpected Turbopack error occurred:
To read data of Meta the task need to be accessed with this category (It's accessed with Data)

Debug info:
- Execution of ProjectContainer::project failed
- To read data of Meta the task need to be accessed with this category (It's accessed with Data)
Error [TurbopackInternalError]: To read data of Meta the task need to be accessed with this category (It's accessed with Data)

Debug info:
- Execution of ProjectContainer::project failed
- To read data of Meta the task need to be accessed with this category (It's accessed with Data)
    at <unknown> (TurbopackInternalError: To read data of Meta the task need to be accessed with this category (It's accessed with Data)) {
  location: 'turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs:681:14'
}


undefined

  724 |   }
  725 |   console.error('TIMED OUT CHECK: ', { regex, content, lastErr })
> 726 |   throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |         ^
  727 | }
  728 |
  729 | export class File {

  at check (lib/next-test-utils.ts:726:9)
  at Object.<anonymous> (integration/dynamic-optional-routing/test/index.test.ts:204:7)

● Dynamic Optional Routing › development mode › invalid pages › should fail to build when mixed with regular catch-all

TIMED OUT: /You cannot use both .+ at the same level/


thread 'tokio-runtime-worker' (1071034) panicked at turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs:681:14:
To read data of Meta the task need to be accessed with this category (It's accessed with Data)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FATAL: An unexpected Turbopack error occurred:
To read data of Meta the task need to be accessed with this category (It's accessed with Data)

Debug info:
- Execution of ProjectContainer::project failed
- To read data of Meta the task need to be accessed with this category (It's accessed with Data)
Error [TurbopackInternalError]: To read data of Meta the task need to be accessed with this category (It's accessed with Data)

Debug info:
- Execution of ProjectContainer::project failed
- To read data of Meta the task need to be accessed with this category (It's accessed with Data)
    at <unknown> (TurbopackInternalError: To read data of Meta the task need to be accessed with this category (It's accessed with Data)) {
  location: 'turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs:681:14'
}


undefined

  724 |   }
  725 |   console.error('TIMED OUT CHECK: ', { regex, content, lastErr })
> 726 |   throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |         ^
  727 | }
  728 |
  729 | export class File {

  at check (lib/next-test-utils.ts:726:9)
  at Object.<anonymous> (integration/dynamic-optional-routing/test/index.test.ts:218:7)

● Dynamic Optional Routing › development mode › invalid pages › should fail to build when optional but no catch-all

TIMED OUT: /Optional route parameters are not yet supported/


thread 'tokio-runtime-worker' (1071128) panicked at turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs:681:14:
To read data of Meta the task need to be accessed with this category (It's accessed with Data)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FATAL: An unexpected Turbopack error occurred:
To read data of Meta the task need to be accessed with this category (It's accessed with Data)

Debug info:
- Execution of ProjectContainer::project failed
- To read data of Meta the task need to be accessed with this category (It's accessed with Data)
Error [TurbopackInternalError]: To read data of Meta the task need to be accessed with this category (It's accessed with Data)

Debug info:
- Execution of ProjectContainer::project failed
- To read data of Meta the task need to be accessed with this category (It's accessed with Data)
    at <unknown> (TurbopackInternalError: To read data of Meta the task need to be accessed with this category (It's accessed with Data)) {
  location: 'turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs:681:14'
}


undefined

  724 |   }
  725 |   console.error('TIMED OUT CHECK: ', { regex, content, lastErr })
> 726 |   throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |         ^
  727 | }
  728 |
  729 | export class File {

  at check (lib/next-test-utils.ts:726:9)
  at Object.<anonymous> (integration/dynamic-optional-routing/test/index.test.ts:229:7)

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

  • 404 handling > custom _error > next dev > should normalize repeated slashes in redirects correctly (DD)
  • 404 handling > custom _error > next dev > should handle double slashes correctly (DD)
  • 404 handling > custom _error > next dev > should handle double slashes correctly with query (DD)
  • 404 handling > custom _error > next dev > should handle double slashes correctly with hash (DD)
  • 404 handling > custom _error > next dev > should handle double slashes correctly with encoded (DD)
  • 404 handling > custom _error > next dev > should handle double slashes correctly with encoded and query (DD)
  • 404 handling > custom _error > next dev > should handle double slashes correctly with encoded and hash (DD)
  • 404 handling > custom _error > next dev > should handle backslashes correctly (DD)
  • 404 handling > custom _error > next dev > should handle mixed backslashes/forward slashes correctly (DD)
  • 404 handling > custom _error > next dev > should handle slashes in next/link correctly (DD)
  • 404 handling > custom _error > next dev > should handle slashes in router push correctly (DD)
  • 404 handling > custom _error > next dev > should have no error from encoded slashes in router push (DD)
  • 404 handling > pages/404 > production mode > next dev > should normalize repeated slashes in redirects correctly (DD)
  • 404 handling > pages/404 > production mode > next dev > should handle double slashes correctly (DD)
  • 404 handling > pages/404 > production mode > next dev > should handle double slashes correctly with query (DD)
  • 404 handling > pages/404 > production mode > next dev > should handle double slashes correctly with hash (DD)
  • 404 handling > pages/404 > production mode > next dev > should handle double slashes correctly with encoded (DD)
  • 404 handling > pages/404 > production mode > next dev > should handle double slashes correctly with encoded and query (DD)
  • 404 handling > pages/404 > production mode > next dev > should handle double slashes correctly with encoded and hash (DD)
  • 404 handling > pages/404 > production mode > next dev > should handle backslashes correctly (DD)
  • 404 handling > pages/404 > production mode > next dev > should handle mixed backslashes/forward slashes correctly (DD)
  • 404 handling > pages/404 > production mode > next dev > should handle slashes in next/link correctly (DD)
  • 404 handling > pages/404 > production mode > next dev > should handle slashes in router push correctly (DD)
  • 404 handling > pages/404 > production mode > next dev > should have no error from encoded slashes in router push (DD)
Expand output

● 404 handling › custom _error › next dev › should normalize repeated slashes in redirects correctly

FetchError: request to http://localhost:36835/ failed, reason: socket hang up

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

● 404 handling › custom _error › next dev › should handle double slashes correctly

FetchError: request to http://localhost:36835/ failed, reason: socket hang up

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

● 404 handling › custom _error › next dev › should handle double slashes correctly with query

FetchError: request to http://localhost:36835/ failed, reason: socket hang up

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

● 404 handling › custom _error › next dev › should handle double slashes correctly with hash

FetchError: request to http://localhost:36835/ failed, reason: socket hang up

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

● 404 handling › custom _error › next dev › should handle double slashes correctly with encoded

FetchError: request to http://localhost:36835/ failed, reason: socket hang up

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

● 404 handling › custom _error › next dev › should handle double slashes correctly with encoded and query

FetchError: request to http://localhost:36835/ failed, reason: socket hang up

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

● 404 handling › custom _error › next dev › should handle double slashes correctly with encoded and hash

FetchError: request to http://localhost:36835/ failed, reason: socket hang up

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

● 404 handling › custom _error › next dev › should handle backslashes correctly

FetchError: request to http://localhost:36835/ failed, reason: socket hang up

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

● 404 handling › custom _error › next dev › should handle mixed backslashes/forward slashes correctly

FetchError: request to http://localhost:36835/ failed, reason: socket hang up

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

● 404 handling › custom _error › next dev › should handle slashes in next/link correctly

FetchError: request to http://localhost:36835/ failed, reason: socket hang up

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

● 404 handling › custom _error › next dev › should handle slashes in router push correctly

FetchError: request to http://localhost:36835/ failed, reason: socket hang up

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

● 404 handling › custom _error › next dev › should have no error from encoded slashes in router push

FetchError: request to http://localhost:36835/ failed, reason: socket hang up

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

● 404 handling › pages/404 › production mode › next dev › should normalize repeated slashes in redirects correctly

FetchError: request to http://localhost:36881/ failed, reason: socket hang up

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

● 404 handling › pages/404 › production mode › next dev › should handle double slashes correctly

FetchError: request to http://localhost:36881/ failed, reason: socket hang up

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

● 404 handling › pages/404 › production mode › next dev › should handle double slashes correctly with query

FetchError: request to http://localhost:36881/ failed, reason: socket hang up

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

● 404 handling › pages/404 › production mode › next dev › should handle double slashes correctly with hash

FetchError: request to http://localhost:36881/ failed, reason: socket hang up

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

● 404 handling › pages/404 › production mode › next dev › should handle double slashes correctly with encoded

FetchError: request to http://localhost:36881/ failed, reason: socket hang up

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

● 404 handling › pages/404 › production mode › next dev › should handle double slashes correctly with encoded and query

FetchError: request to http://localhost:36881/ failed, reason: socket hang up

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

● 404 handling › pages/404 › production mode › next dev › should handle double slashes correctly with encoded and hash

FetchError: request to http://localhost:36881/ failed, reason: socket hang up

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

● 404 handling › pages/404 › production mode › next dev › should handle backslashes correctly

FetchError: request to http://localhost:36881/ failed, reason: socket hang up

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

● 404 handling › pages/404 › production mode › next dev › should handle mixed backslashes/forward slashes correctly

FetchError: request to http://localhost:36881/ failed, reason: socket hang up

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

● 404 handling › pages/404 › production mode › next dev › should handle slashes in next/link correctly

FetchError: request to http://localhost:36881/ failed, reason: socket hang up

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

● 404 handling › pages/404 › production mode › next dev › should handle slashes in router push correctly

FetchError: request to http://localhost:36881/ failed, reason: socket hang up

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

● 404 handling › pages/404 › production mode › next dev › should have no error from encoded slashes in router push

FetchError: request to http://localhost:36881/ failed, reason: socket hang up

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

pnpm test-dev-turbo test/development/app-dir/cache-components-dev-cache-scope/cache-components-dev-cache-scope.test.ts (turbopack) (job)

  • filesystem-caching with cache disabled > should cache or not cache loaders (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (RSC change) (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (RCC change) (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (Pages change) (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (rename app page) (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (next config change) (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (env var change) (DD)
  • filesystem-caching with cache disabled > should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change) (DD)
  • filesystem-caching with cache enabled > should cache or not cache loaders (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (RSC change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (RCC change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (Pages change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (rename app page) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (next config change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (env var change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change) (DD)
Expand output

● filesystem-caching with cache disabled › should cache or not cache loaders

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

  343 |     await opts?.beforePageLoad?.(page)
  344 |
> 345 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  346 |   }
  347 |
  348 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:345:16)
  at webdriver (lib/next-webdriver.ts:156:3)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:75:27)

● filesystem-caching with cache disabled › should allow to change files while stopped (RSC change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache disabled › should allow to change files while stopped (RCC change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache disabled › should allow to change files while stopped (Pages change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache disabled › should allow to change files while stopped (rename app page)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache disabled › should allow to change files while stopped (next config change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.textCheck [as checkInitial] (e2e/filesystem-cache/filesystem-cache.test.ts:222:17)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache disabled › should allow to change files while stopped (env var change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.textCheck [as checkInitial] (e2e/filesystem-cache/filesystem-cache.test.ts:234:17)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache disabled › should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache enabled › should cache or not cache loaders

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

  343 |     await opts?.beforePageLoad?.(page)
  344 |
> 345 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  346 |   }
  347 |
  348 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:345:16)
  at webdriver (lib/next-webdriver.ts:156:3)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:75:27)

● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache enabled › should allow to change files while stopped (RCC change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache enabled › should allow to change files while stopped (Pages change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache enabled › should allow to change files while stopped (rename app page)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache enabled › should allow to change files while stopped (next config change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.textCheck [as checkInitial] (e2e/filesystem-cache/filesystem-cache.test.ts:222:17)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache enabled › should allow to change files while stopped (env var change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.textCheck [as checkInitial] (e2e/filesystem-cache/filesystem-cache.test.ts:234:17)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change)

No child process available

  150 |
  151 |     async function textCheck(url: string, text: string) {
> 152 |       const browser = await next.browser(url)
      |                                  ^
  153 |       expect(await browser.elementByCss('p').text()).toBe(text)
  154 |       await browser.close()
  155 |     }

  at browser (e2e/filesystem-cache/filesystem-cache.test.ts:152:34)
  at Object.checkInitial (e2e/filesystem-cache/filesystem-cache.test.ts:269:26)

pnpm test-dev-turbo test/development/acceptance/ReactRefreshModule.test.ts (turbopack) (job)

  • Middleware can set the matcher in its config > does add the header for root request (DD)
  • Middleware can set the matcher in its config > adds the header for a matched path (DD)
  • Middleware can set the matcher in its config > adds the header for a matched data path (with header) (DD)
  • Middleware can set the matcher in its config > adds the header for a matched data path (without header) (DD)
  • Middleware can set the matcher in its config > adds the header for another matched path (DD)
  • Middleware can set the matcher in its config > adds the header for another matched data path (DD)
  • Middleware can set the matcher in its config > does add the header for root data request (DD)
  • Middleware can set the matcher in its config > should load matches in client matchers correctly (DD)
  • Middleware can set the matcher in its config > should navigate correctly with matchers (DD)
  • using a single matcher > does not add the header for root request (DD)
  • using a single matcher > does not add the header for root data request (DD)
  • using a single matcher > adds the header for a matched path (DD)
  • using a single matcher > adds the headers for a matched data path (with header) (DD)
  • using a single matcher > adds the header for a matched data path (without header) (DD)
  • using a single matcher > does not add the header for an unmatched path (DD)
  • using a single matcher with i18n > adds the header for a matched path (DD)
  • using a single matcher with i18n > adds the header for a mathed root path with /index (DD)
  • using a single matcher with i18n > adds the headers for a matched data path (DD)
  • using a single matcher with i18n > does not add the header for an unmatched path (DD)
  • using a single matcher with i18n and basePath > adds the header for a matched path (DD)
  • using a single matcher with i18n and basePath > adds the header for a mathed root path with /index (DD)
  • using a single matcher with i18n and basePath > adds the headers for a matched data path (DD)
  • using a single matcher with i18n and basePath > does not add the header for an unmatched path (DD)
  • using a single matcher with i18n and basePath and trailingSlash > adds the header for a matched path (DD)
  • using a single matcher with i18n and basePath and trailingSlash > adds the header for a mathed root path with /index (DD)
  • using a single matcher with i18n and basePath and trailingSlash > adds the headers for a matched data path (DD)
  • using a single matcher with i18n and basePath and trailingSlash > does not add the header for an unmatched path (DD)
  • using a single matcher with i18n and trailingSlash > adds the header for a matched path (DD)
  • using a single matcher with i18n and trailingSlash > adds the header for a mathed root path with /index (DD)
  • using a single matcher with i18n and trailingSlash > adds the headers for a matched data path (DD)
  • using a single matcher with i18n and trailingSlash > does not add the header for an unmatched path (DD)
  • using root matcher > adds the header to the / (DD)
  • using root matcher > adds the header to the /index (DD)
  • using root matcher > adds the header for a matched data path (with header) (DD)
  • using root matcher > adds the header for a matched data path (without header) (DD)
Expand output

● Middleware can set the matcher in its config › does add the header for root request

FetchError: request to http://localhost:46067/ failed, reason: socket hang up

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

● Middleware can set the matcher in its config › adds the header for a matched path

FetchError: request to http://localhost:46067/with-middleware failed, reason: connect ECONNREFUSED 127.0.0.1:46067

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

● Middleware can set the matcher in its config › adds the header for a matched data path (with header)

FetchError: request to http://localhost:46067/_next/data/development/with-middleware.json failed, reason: connect ECONNREFUSED 127.0.0.1:46067

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

● Middleware can set the matcher in its config › adds the header for a matched data path (without header)

FetchError: request to http://localhost:46067/_next/data/development/with-middleware.json failed, reason: connect ECONNREFUSED 127.0.0.1:46067

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

● Middleware can set the matcher in its config › adds the header for another matched path

FetchError: request to http://localhost:46067/another-middleware failed, reason: connect ECONNREFUSED 127.0.0.1:46067

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

● Middleware can set the matcher in its config › adds the header for another matched data path

FetchError: request to http://localhost:46067/_next/data/development/another-middleware.json failed, reason: connect ECONNREFUSED 127.0.0.1:46067

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

● Middleware can set the matcher in its config › does add the header for root data request

FetchError: request to http://localhost:46067/_next/data/development/index.json failed, reason: connect ECONNREFUSED 127.0.0.1:46067

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

● Middleware can set the matcher in its config › should load matches in client matchers correctly

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

  343 |     await opts?.beforePageLoad?.(page)
  344 |
> 345 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  346 |   }
  347 |
  348 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:345:16)
  at webdriver (lib/next-webdriver.ts:156:3)
  at Object.<anonymous> (e2e/middleware-matcher/index.test.ts:97:21)

● Middleware can set the matcher in its config › should navigate correctly with matchers

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

  343 |     await opts?.beforePageLoad?.(page)
  344 |
> 345 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  346 |   }
  347 |
  348 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:345:16)
  at webdriver (lib/next-webdriver.ts:156:3)
  at Object.<anonymous> (e2e/middleware-matcher/index.test.ts:115:21)

● using a single matcher › does not add the header for root request

FetchError: request to http://localhost:41727/ failed, reason: socket hang up

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

● using a single matcher › does not add the header for root data request

FetchError: request to http://localhost:41727/_next/data/development/index.json failed, reason: connect ECONNREFUSED 127.0.0.1:41727

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

● using a single matcher › adds the header for a matched path

FetchError: request to http://localhost:41727/middleware/works failed, reason: connect ECONNREFUSED 127.0.0.1:41727

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

● using a single matcher › adds the headers for a matched data path (with header)

FetchError: request to http://localhost:41727/_next/data/development/middleware/works.json failed, reason: connect ECONNREFUSED 127.0.0.1:41727

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

● using a single matcher › adds the header for a matched data path (without header)

FetchError: request to http://localhost:41727/_next/data/development/middleware/works.json failed, reason: connect ECONNREFUSED 127.0.0.1:41727

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

● using a single matcher › does not add the header for an unmatched path

FetchError: request to http://localhost:41727/about/me failed, reason: connect ECONNREFUSED 127.0.0.1:41727

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

● using root matcher › adds the header to the /

FetchError: request to http://localhost:43833/ failed, reason: socket hang up

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

● using root matcher › adds the header to the /index

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

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

● using root matcher › adds the header for a matched data path (with header)

FetchError: request to http://localhost:43833/_next/data/development/index.json failed, reason: connect ECONNREFUSED 127.0.0.1:43833

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

● using root matcher › adds the header for a matched data path (without header)

FetchError: request to http://localhost:43833/_next/data/development/index.json failed, reason: connect ECONNREFUSED 127.0.0.1:43833

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

● using a single matcher with i18n › adds the header for a matched path

FetchError: request to http://localhost:43487/ failed, reason: socket hang up

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

● using a single matcher with i18n › adds the header for a mathed root path with /index

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

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

● using a single matcher with i18n › adds the headers for a matched data path

FetchError: request to http://localhost:43487/_next/data/development/en.json failed, reason: connect ECONNREFUSED 127.0.0.1:43487

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

● using a single matcher with i18n › does not add the header for an unmatched path

FetchError: request to http://localhost:43487/about/me failed, reason: connect ECONNREFUSED 127.0.0.1:43487

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

● using a single matcher with i18n and trailingSlash › adds the header for a matched path

FetchError: request to http://localhost:46219/ failed, reason: socket hang up

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

● using a single matcher with i18n and trailingSlash › adds the header for a mathed root path with /index

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

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

● using a single matcher with i18n and trailingSlash › adds the headers for a matched data path

FetchError: request to http://localhost:46219/_next/data/development/en.json failed, reason: connect ECONNREFUSED 127.0.0.1:46219

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

● using a single matcher with i18n and trailingSlash › does not add the header for an unmatched path

FetchError: request to http://localhost:46219/about/me failed, reason: connect ECONNREFUSED 127.0.0.1:46219

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

● using a single matcher with i18n and basePath › adds the header for a matched path

FetchError: request to http://localhost:37557/root failed, reason: socket hang up

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

● using a single matcher with i18n and basePath › adds the header for a mathed root path with /index

FetchError: request to http://localhost:37557/root/index failed, reason: connect ECONNREFUSED 127.0.0.1:37557

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

● using a single matcher with i18n and basePath › adds the headers for a matched data path

FetchError: request to http://localhost:37557/root/_next/data/development/en.json failed, reason: connect ECONNREFUSED 127.0.0.1:37557

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

● using a single matcher with i18n and basePath › does not add the header for an unmatched path

FetchError: request to http://localhost:37557/root/about/me failed, reason: connect ECONNREFUSED 127.0.0.1:37557

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

● using a single matcher with i18n and basePath and trailingSlash › adds the header for a matched path

FetchError: request to http://localhost:36491/root failed, reason: socket hang up

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

● using a single matcher with i18n and basePath and trailingSlash › adds the header for a mathed root path with /index

FetchError: request to http://localhost:36491/root/index failed, reason: connect ECONNREFUSED 127.0.0.1:36491

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

● using a single matcher with i18n and basePath and trailingSlash › adds the headers for a matched data path

FetchError: request to http://localhost:36491/root/_next/data/development/en.json failed, reason: connect ECONNREFUSED 127.0.0.1:36491

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

● using a single matcher with i18n and basePath and trailingSlash › does not add the header for an unmatched path

FetchError: request to http://localhost:36491/root/about/me failed, reason: connect ECONNREFUSED 127.0.0.1:36491

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

pnpm test-dev test/development/basic/next-rs-api.test.ts (job)

  • next.rs api > should detect the correct routes (DD)
  • next.rs api > should allow to write root page to disk (DD)
  • next.rs api > should allow to write pages edge api to disk (DD)
  • next.rs api > should allow to write pages Node.js api to disk (DD)
  • next.rs api > should allow to write app edge page to disk (DD)
  • next.rs api > should allow to write app Node.js page to disk (DD)
  • next.rs api > should allow to write pages edge page to disk (DD)
  • next.rs api > should allow to write pages Node.js page to disk (DD)
  • next.rs api > should allow to write app edge route to disk (DD)
  • next.rs api > should allow to write app Node.js route to disk (DD)
  • next.rs api > should have working HMR on client-side change on a page 0 (DD)
  • next.rs api > should have working HMR on client-side change on a page 1 (DD)
  • next.rs api > should have working HMR on client-side change on a page 2 (DD)
  • next.rs api > should have working HMR on server-side change on a page 0 (DD)
  • next.rs api > should have working HMR on server-side change on a page 1 (DD)
  • next.rs api > should have working HMR on server-side change on a page 2 (DD)
  • next.rs api > should have working HMR on client and server-side change on a page 0 (DD)
  • next.rs api > should have working HMR on client and server-side change on a page 1 (DD)
  • next.rs api > should have working HMR on client and server-side change on a page 2 (DD)
  • next.rs api > should have working HMR on client-side change on a app page 0 (DD)
  • next.rs api > should have working HMR on client-side change on a app page 1 (DD)
  • next.rs api > should have working HMR on client-side change on a app page 2 (DD)
  • next.rs api > should have working HMR on server-side change on a app page 0 (DD)
  • next.rs api > should have working HMR on server-side change on a app page 1 (DD)
  • next.rs api > should have working HMR on server-side change on a app page 2 (DD)
  • next.rs api writeToDisk multiple times > should allow to write to disk multiple times (DD)
Expand output

● next.rs api writeToDisk multiple times › should allow to write to disk multiple times

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

Expected: 0
Received: 1

  303 |     expect(result.status).toBe(0)
  304 |
> 305 |     await next.destroy()
      |                               ^
  306 |   })
  307 | })
  308 |

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:305:31)

● next.rs api › should detect the correct routes

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should detect the correct routes

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should allow to write root page to disk

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should allow to write root page to disk

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should allow to write pages edge api to disk

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should allow to write pages edge api to disk

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should allow to write pages Node.js api to disk

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should allow to write pages Node.js api to disk

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should allow to write app edge page to disk

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should allow to write app edge page to disk

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should allow to write app Node.js page to disk

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should allow to write app Node.js page to disk

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should allow to write pages edge page to disk

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should allow to write pages edge page to disk

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should allow to write pages Node.js page to disk

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should allow to write pages Node.js page to disk

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should allow to write app edge route to disk

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should allow to write app edge route to disk

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should allow to write app Node.js route to disk

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should allow to write app Node.js route to disk

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should have working HMR on client-side change on a page 0

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should have working HMR on client-side change on a page 0

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should have working HMR on client-side change on a page 1

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should have working HMR on client-side change on a page 1

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should have working HMR on client-side change on a page 2

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should have working HMR on client-side change on a page 2

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should have working HMR on server-side change on a page 0

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should have working HMR on server-side change on a page 0

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should have working HMR on server-side change on a page 1

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should have working HMR on server-side change on a page 1

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should have working HMR on server-side change on a page 2

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should have working HMR on server-side change on a page 2

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should have working HMR on client and server-side change on a page 0

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should have working HMR on client and server-side change on a page 0

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should have working HMR on client and server-side change on a page 1

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should have working HMR on client and server-side change on a page 1

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should have working HMR on client and server-side change on a page 2

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should have working HMR on client and server-side change on a page 2

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should have working HMR on client-side change on a app page 0

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should have working HMR on client-side change on a app page 0

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should have working HMR on client-side change on a app page 1

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should have working HMR on client-side change on a app page 1

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should have working HMR on client-side change on a app page 2

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should have working HMR on client-side change on a app page 2

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should have working HMR on server-side change on a app page 0

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should have working HMR on server-side change on a app page 0

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should have working HMR on server-side change on a app page 1

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should have working HMR on server-side change on a app page 1

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should have working HMR on server-side change on a app page 2

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should have working HMR on server-side change on a app page 2

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● next.rs api › should allow to make many HMR updates

createNext called without destroying previous instance

  149 |       await nextInstance.destroy()
  150 |       throw new Error(
> 151 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
      |                   ^
  152 |       )
  153 |     }
  154 |   })

  at createNext (lib/e2e-utils/index.ts:151:19)
  at development/basic/next-rs-api.test.ts:313:51
  at Span.traceAsyncFn (../packages/next/dist/trace/trace.js:157:26)
  at Object.<anonymous> (development/basic/next-rs-api.test.ts:312:56)

● next.rs api › should allow to make many HMR updates

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

  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',
> 338 |           'app/route-edge/route.ts':
      |                                                         ^
  339 |             'export function GET() { return Response.json({ hello: "world" }) }\nexport const runtime = "edge"',
  340 |         },
  341 |       })

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:338:97)

● Test suite failed to run

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

  332 |           'app/app-edge/page.tsx':
  333 |             'export default () => <div>hello world</div>\nexport const runtime = "edge"',
> 334 |           'app/app-nodejs/page.tsx':
      |                       ^
  335 |             'export default () => <div>hello world</div>',
  336 |           'app/route-nodejs/route.ts':
  337 |             'export function GET() { return Response.json({ hello: "world" }) }',

  at Object.<anonymous> (development/basic/next-rs-api.test.ts:334:23)

pnpm test test/integration/config-mjs/test/index.test.ts (turbopack) (job)

  • page features telemetry > detects --turbo correctly for next dev (DD)
  • page features telemetry > detects --turbo correctly for next dev stopped (DD)
Expand output

● page features telemetry › detects --turbo correctly for next dev

TIMED OUT: /NEXT_CLI_SESSION_STARTED/


thread 'tokio-runtime-worker' (718137) panicked at turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs:681:14:
To read data of Meta the task need to be accessed with this category (It's accessed with Data)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FATAL: An unexpected Turbopack error occurred:
To read data of Meta the task need to be accessed with this category (It's accessed with Data)

Debug info:
- Execution of ProjectContainer::project failed
- To read data of Meta the task need to be accessed with this category (It's accessed with Data)
Error [TurbopackInternalError]: To read data of Meta the task need to be accessed with this category (It's accessed with Data)

Debug info:
- Execution of ProjectContainer::project failed
- To read data of Meta the task need to be accessed with this category (It's accessed with Data)
    at <unknown> (TurbopackInternalError: To read data of Meta the task need to be accessed with this category (It's accessed with Data)) {
  location: 'turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs:681:14'
}


undefined

  724 |   }
  725 |   console.error('TIMED OUT CHECK: ', { regex, content, lastErr })
> 726 |   throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |         ^
  727 | }
  728 |
  729 | export class File {

  at check (lib/next-test-utils.ts:726:9)
  at Object.<anonymous> (integration/telemetry/test/page-features.test.ts:30:7)

● page features telemetry › detects --turbo correctly for next dev stopped

TIMED OUT: /NEXT_CLI_SESSION_STARTED/


thread 'tokio-runtime-worker' (718298) panicked at turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs:681:14:
To read data of Meta the task need to be accessed with this category (It's accessed with Data)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FATAL: An unexpected Turbopack error occurred:
To read data of Meta the task need to be accessed with this category (It's accessed with Data)

Debug info:
- Execution of ProjectContainer::project failed
- To read data of Meta the task need to be accessed with this category (It's accessed with Data)
Error [TurbopackInternalError]: To read data of Meta the task need to be accessed with this category (It's accessed with Data)

Debug info:
- Execution of ProjectContainer::project failed
- To read data of Meta the task need to be accessed with this category (It's accessed with Data)
    at <unknown> (TurbopackInternalError: To read data of Meta the task need to be accessed with this category (It's accessed with Data)) {
  location: 'turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs:681:14'
}


undefined

  724 |   }
  725 |   console.error('TIMED OUT CHECK: ', { regex, content, lastErr })
> 726 |   throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |         ^
  727 | }
  728 |
  729 | export class File {

  at check (lib/next-test-utils.ts:726:9)
  at Object.<anonymous> (integration/telemetry/test/page-features.test.ts:66:7)

pnpm test-dev test/e2e/app-dir/next-config-ts-native-ts/import-from-node-modules/next-config-ts-import-from-node-modules-cjs.test.ts (job)

  • next-config-ts-nested-imports-cjs > should handle nested imports (CJS) (DD)
Expand output

● next-config-ts-nested-imports-cjs › should handle nested imports (CJS)

FetchError: request to http://localhost:38571/ failed, reason: socket hang up

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

pnpm test-dev-turbo test/development/app-dir/devtools-position/top-right-position.test.ts (turbopack) (job)

  • Switchable runtime > Switchable runtime (dev) > should not include edge api routes and edge ssr routes into dev middleware manifest (DD)
  • Switchable runtime > Switchable runtime (dev) > should sort edge SSR routes correctly (DD)
  • Switchable runtime > Switchable runtime (dev) > should be able to navigate between edge SSR routes without any errors (DD)
  • Switchable runtime > Switchable runtime (dev) > should not consume server.js file extension (DD)
  • Switchable runtime > Switchable runtime (dev) > should build /api/hello and /api/edge as an api route with edge runtime (DD)
  • Switchable runtime > Switchable runtime (dev) > should be possible to switch between runtimes in API routes (DD)
  • Switchable runtime > Switchable runtime (dev) > should be possible to switch between runtimes in pages (DD)
Expand output

● Switchable runtime › Switchable runtime (dev) › should not include edge api routes and edge ssr routes into dev middleware manifest

FetchError: request to http://localhost:43751/_next/static/development/_devMiddlewareManifest.json failed, reason: socket hang up

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

● Switchable runtime › Switchable runtime (dev) › should sort edge SSR routes correctly

FetchError: request to http://localhost:43751/edge/foo failed, reason: connect ECONNREFUSED 127.0.0.1:43751

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

● Switchable runtime › Switchable runtime (dev) › should be able to navigate between edge SSR routes without any errors

FetchError: request to http://localhost:43751/edge/foo failed, reason: connect ECONNREFUSED 127.0.0.1:43751

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

● Switchable runtime › Switchable runtime (dev) › should not consume server.js file extension

FetchError: request to http://localhost:43751/legacy-extension failed, reason: connect ECONNREFUSED 127.0.0.1:43751

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

● Switchable runtime › Switchable runtime (dev) › should build /api/hello and /api/edge as an api route with edge runtime

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

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

● Switchable runtime › Switchable runtime (dev) › should be possible to switch between runtimes in API routes

TIMED OUT: server response

undefined

FetchError: request to http://localhost:43751/api/switch-in-dev failed, reason: connect ECONNREFUSED 127.0.0.1:43751

  724 |   }
  725 |   console.error('TIMED OUT CHECK: ', { regex, content, lastErr })
> 726 |   throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |         ^
  727 | }
  728 |
  729 | export class File {

  at check (lib/next-test-utils.ts:726:9)
  at Object.<anonymous> (e2e/switchable-runtime/index.test.ts:177:9)

● Switchable runtime › Switchable runtime (dev) › should be possible to switch between runtimes in pages

TIMED OUT: /Hello from edge page/

undefined

FetchError: request to http://localhost:43751/switch-in-dev failed, reason: connect ECONNREFUSED 127.0.0.1:43751

  724 |   }
  725 |   console.error('TIMED OUT CHECK: ', { regex, content, lastErr })
> 726 |   throw new Error('TIMED OUT: ' + regex + '\n\n' + content + '\n\n' + lastErr)
      |         ^
  727 | }
  728 |
  729 | export class File {

  at check (lib/next-test-utils.ts:726:9)
  at Object.<anonymous> (e2e/switchable-runtime/index.test.ts:230:9)

pnpm test-start-turbo test/production/graceful-shutdown/index.test.ts (turbopack) (job)

  • Graceful Shutdown > development (next dev) > should shut down child immediately (DD)
Expand output

● Graceful Shutdown › development (next dev) › should shut down child immediately

expect(received).resolves.toBeDefined()

Received promise rejected instead of resolved
Rejected to value: [FetchError: request to http://localhost:46671/api/long-running failed, reason: socket hang up]

  125 |
  126 |       // let the dev server compile the route before running the test
> 127 |       await expect(
      |             ^
  128 |         fetchViaHTTP(appPort, '/api/long-running')
  129 |       ).resolves.toBeDefined()
  130 |

  at expect (../node_modules/.pnpm/expect@29.7.0/node_modules/expect/build/index.js:113:15)
  at Object.expect (production/graceful-shutdown/index.test.ts:127:13)

pnpm test-start-turbo test/e2e/filesystem-cache/filesystem-cache.test.ts (turbopack) (job)

  • filesystem-caching with cache enabled > should cache or not cache loaders (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (RSC change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (RCC change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (Pages change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (rename app page) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (next config change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (env var change) (DD)
  • filesystem-caching with cache enabled > should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change) (DD)
Expand output

● filesystem-caching with cache enabled › should cache or not cache loaders

next build failed with code/signal 1

  77 |             if (code || signal)
  78 |               reject(
> 79 |                 new Error(
     |                 ^
  80 |                   `next build failed with code/signal ${code || signal}`
  81 |                 )
  82 |               )

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

● filesystem-caching with cache enabled › should cache or not cache loaders

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change)

next build failed with code/signal 1

  77 |             if (code || signal)
  78 |               reject(
> 79 |                 new Error(
     |                 ^
  80 |                   `next build failed with code/signal ${code || signal}`
  81 |                 )
  82 |               )

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

● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache enabled › should allow to change files while stopped (RCC change)

next build failed with code/signal 1

  77 |             if (code || signal)
  78 |               reject(
> 79 |                 new Error(
     |                 ^
  80 |                   `next build failed with code/signal ${code || signal}`
  81 |                 )
  82 |               )

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

● filesystem-caching with cache enabled › should allow to change files while stopped (RCC change)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache enabled › should allow to change files while stopped (Pages change)

next build failed with code/signal 1

  77 |             if (code || signal)
  78 |               reject(
> 79 |                 new Error(
     |                 ^
  80 |                   `next build failed with code/signal ${code || signal}`
  81 |                 )
  82 |               )

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

● filesystem-caching with cache enabled › should allow to change files while stopped (Pages change)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache enabled › should allow to change files while stopped (rename app page)

next build failed with code/signal 1

  77 |             if (code || signal)
  78 |               reject(
> 79 |                 new Error(
     |                 ^
  80 |                   `next build failed with code/signal ${code || signal}`
  81 |                 )
  82 |               )

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

● filesystem-caching with cache enabled › should allow to change files while stopped (rename app page)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache enabled › should allow to change files while stopped (next config change)

next build failed with code/signal 1

  77 |             if (code || signal)
  78 |               reject(
> 79 |                 new Error(
     |                 ^
  80 |                   `next build failed with code/signal ${code || signal}`
  81 |                 )
  82 |               )

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

● filesystem-caching with cache enabled › should allow to change files while stopped (next config change)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache enabled › should allow to change files while stopped (env var change)

next build failed with code/signal 1

  77 |             if (code || signal)
  78 |               reject(
> 79 |                 new Error(
     |                 ^
  80 |                   `next build failed with code/signal ${code || signal}`
  81 |                 )
  82 |               )

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

● filesystem-caching with cache enabled › should allow to change files while stopped (env var change)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change)

next build failed with code/signal 1

  77 |             if (code || signal)
  78 |               reject(
> 79 |                 new Error(
     |                 ^
  80 |                   `next build failed with code/signal ${code || signal}`
  81 |                 )
  82 |               )

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

● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change)

next instance is not initialized yet, make sure you call methods on next instance in test body.

  292 |     set: function (_target, key, value) {
  293 |       if (!next) {
> 294 |         throw new Error(
      |               ^
  295 |           'next instance is not initialized yet, make sure you call methods on next instance in test body.'
  296 |         )
  297 |       }

  at Object.set (lib/e2e-utils/index.ts:294:15)
  at Object.<anonymous> (e2e/filesystem-cache/filesystem-cache.test.ts:45:53)

pnpm test-dev-turbo test/development/app-dir/basic/basic.test.ts (turbopack) (job)

  • multi-zone > should correctly respond for / (DD)
  • multi-zone > should correctly respond for /guest (DD)
  • multi-zone > should correctly respond for /blog/post-1 (DD)
  • multi-zone > should correctly respond for /guest/blog/post-1 (DD)
  • multi-zone > should correctly respond for /guest/another/post-1 (DD)
  • multi-zone > should support HMR in both apps (DD)
Expand output

● multi-zone › should correctly respond for /

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

  269 |   let next: NextInstance | undefined
  270 |   if (!skipped) {
> 271 |     beforeAll(async () => {
      |     ^
  272 |       next = await createNext(options)
  273 |     })
  274 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:271:5)
  at e2e/multi-zone/multi-zone.test.ts:6:53
  at Object.describe (e2e/multi-zone/multi-zone.test.ts:5:1)

● multi-zone › should correctly respond for /guest

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

  269 |   let next: NextInstance | undefined
  270 |   if (!skipped) {
> 271 |     beforeAll(async () => {
      |     ^
  272 |       next = await createNext(options)
  273 |     })
  274 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:271:5)
  at e2e/multi-zone/multi-zone.test.ts:6:53
  at Object.describe (e2e/multi-zone/multi-zone.test.ts:5:1)

● multi-zone › should correctly respond for /blog/post-1

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

  269 |   let next: NextInstance | undefined
  270 |   if (!skipped) {
> 271 |     beforeAll(async () => {
      |     ^
  272 |       next = await createNext(options)
  273 |     })
  274 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:271:5)
  at e2e/multi-zone/multi-zone.test.ts:6:53
  at Object.describe (e2e/multi-zone/multi-zone.test.ts:5:1)

● multi-zone › should correctly respond for /guest/blog/post-1

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

  269 |   let next: NextInstance | undefined
  270 |   if (!skipped) {
> 271 |     beforeAll(async () => {
      |     ^
  272 |       next = await createNext(options)
  273 |     })
  274 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:271:5)
  at e2e/multi-zone/multi-zone.test.ts:6:53
  at Object.describe (e2e/multi-zone/multi-zone.test.ts:5:1)

● multi-zone › should correctly respond for /guest/another/post-1

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

  269 |   let next: NextInstance | undefined
  270 |   if (!skipped) {
> 271 |     beforeAll(async () => {
      |     ^
  272 |       next = await createNext(options)
  273 |     })
  274 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:271:5)
  at e2e/multi-zone/multi-zone.test.ts:6:53
  at Object.describe (e2e/multi-zone/multi-zone.test.ts:5:1)

● multi-zone › should support HMR in both apps

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

  269 |   let next: NextInstance | undefined
  270 |   if (!skipped) {
> 271 |     beforeAll(async () => {
      |     ^
  272 |       next = await createNext(options)
  273 |     })
  274 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils/index.ts:271:5)
  at e2e/multi-zone/multi-zone.test.ts:6:53
  at Object.describe (e2e/multi-zone/multi-zone.test.ts:5:1)

pnpm test-start-turbo test/e2e/streaming-ssr/index.test.ts (turbopack) (job)

  • streaming SSR with custom server > should render page correctly under custom server (DD)
Expand output

● streaming SSR with custom server › should render page correctly under custom server

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

  90 |     let server
  91 |     let appPort
> 92 |     beforeAll(async () => {
     |     ^
  93 |       next = await createNext({
  94 |         files: join(__dirname, 'custom-server'),
  95 |       })

  at beforeAll (e2e/streaming-ssr/index.test.ts:92:5)
  at Object.describe (e2e/streaming-ssr/index.test.ts:88:3)

@sokra sokra force-pushed the sokra/aggregation-update-tracing branch from ba27300 to c557e1c Compare January 13, 2026 16:40
@sokra sokra force-pushed the sokra/chunk-item-id-selective branch from df2c985 to 1bb9198 Compare January 13, 2026 16:40
@sokra sokra force-pushed the sokra/aggregation-update-tracing branch from c557e1c to 4173f77 Compare January 13, 2026 20:26
@sokra sokra force-pushed the sokra/chunk-item-id-selective branch from 1bb9198 to 4aedf59 Compare January 13, 2026 20:26
@sokra sokra marked this pull request as ready for review January 13, 2026 23:38
@sokra sokra requested a review from mischnic January 13, 2026 23:38
pub FxIndexMap<
ResolvedVc<NextDynamicEntryModule>,
(ResolvedVc<ModuleId>, ResolvedVc<OutputAssetsWithReferenced>),
(ModuleId, ResolvedVc<OutputAssetsWithReferenced>),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this cause some unnecessary invalidations if the id changes? previously, it was a cell so it would invalidate less stuff along the way

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
(ModuleId, ResolvedVc<OutputAssetsWithReferenced>),
(ResolvedVc<Box<dyn Module>>, ResolvedVc<OutputAssetsWithReferenced>),

@sokra sokra force-pushed the sokra/aggregation-update-tracing branch from 4173f77 to 55f87be Compare January 14, 2026 20:08
@sokra sokra force-pushed the sokra/chunk-item-id-selective branch from 4aedf59 to 0fbd239 Compare January 14, 2026 20:08
@sokra sokra force-pushed the sokra/chunk-item-id-selective branch from 0fbd239 to efccd44 Compare January 15, 2026 07:59
@sokra sokra force-pushed the sokra/aggregation-update-tracing branch from 55f87be to 6a7a1f5 Compare January 15, 2026 07:59
@sokra sokra force-pushed the sokra/chunk-item-id-selective branch from efccd44 to 93ba0cc Compare January 15, 2026 10:51
@sokra sokra force-pushed the sokra/aggregation-update-tracing branch 2 times, most recently from 229bf89 to d3d174b Compare January 15, 2026 18:37
@sokra sokra force-pushed the sokra/chunk-item-id-selective branch from 93ba0cc to a520ee5 Compare January 15, 2026 18:37
@sokra sokra force-pushed the sokra/aggregation-update-tracing branch from d3d174b to 2c0d6b2 Compare January 15, 2026 19:20
@sokra sokra force-pushed the sokra/chunk-item-id-selective branch from a520ee5 to d0eed51 Compare January 15, 2026 19:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

created-by: Turbopack team PRs by the Turbopack team. Turbopack Related to Turbopack with Next.js.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants