Skip to content

Use default runner Playwright browsers#94072

Draft
timneutkens wants to merge 2 commits into
canaryfrom
codex/use-default-playwright-browsers
Draft

Use default runner Playwright browsers#94072
timneutkens wants to merge 2 commits into
canaryfrom
codex/use-default-playwright-browsers

Conversation

@timneutkens
Copy link
Copy Markdown
Contributor

@timneutkens timneutkens commented May 23, 2026

What?

Run Playwright CI jobs directly on the GitHub Actions runner and use the runner-provided Chrome for Chromium tests instead of using a Playwright Docker container or installing Chromium at runtime.

Why?

GitHub-hosted runners already provide Chrome, so Chromium jobs can avoid both the container initialization cost and the pnpm playwright install --with-deps chromium step.

How?

  • Remove the Playwright container configuration from build_reusable.yml.
  • Remove the container-only apt install, ownership, and Git safe-directory workarounds.
  • Set NEXT_TEST_PLAYWRIGHT_CHROMIUM_CHANNEL=chrome for Chromium browser jobs.
  • Teach the shared Playwright browser launcher and standalone MCP browser helpers to pass the configured Chromium channel to chromium.launch().
  • Keep pnpm playwright install --with-deps only for non-Chromium browser jobs, because the runner image does not provide Playwright WebKit.
  • Remove the stale wasm job container opt-out from build_and_test.yml.

Verification

  • git diff --check
  • ruby -e 'require "yaml"; ARGV.each { |f| YAML.load_file(f); puts "ok #{f}" }' .github/workflows/build_reusable.yml .github/workflows/build_and_test.yml
  • Not run: pnpm prettier --with-node-modules --ignore-path .prettierignore --write .github/workflows/build_reusable.yml .github/workflows/build_and_test.yml test/lib/browsers/playwright.ts test/development/mcp-server/mcp-server-get-errors.test.ts test/development/mcp-server/test-utils.ts (prettier command is not available in this checkout)

Copy link
Copy Markdown
Contributor

@vercel vercel Bot left a comment

Choose a reason for hiding this comment

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

Additional Suggestion:

The test-firefox-safari CI job will fail because Firefox and WebKit browsers are never installed after the removal of both the Playwright Docker container and the Install Playwright browsers step.

Fix on Vercel

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 23, 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) 813ms 812ms ▅▇▃▃▇
Cold (Ready in log) 779ms 780ms ▂▇▄▅█
Cold (First Request) 1.185s 1.190s ▁▆▃▃▇
Warm (Listen) 812ms 813ms █▃▁▁█
Warm (Ready in log) 777ms 778ms ▃▇▄▅█
Warm (First Request) 579ms 579ms ▃█▆▇█
📦 Dev Server (Webpack) (Legacy)

📦 Dev Server (Webpack)

Metric Canary PR Change Trend
Cold (Listen) 811ms 810ms █████
Cold (Ready in log) 784ms 783ms █▇▇▇▇
Cold (First Request) 3.183s 3.194s ▆▃▃▂▃
Warm (Listen) 810ms 810ms ▄▄▄▄▄
Warm (Ready in log) 782ms 783ms ▄▄▃▄▄
Warm (First Request) 3.199s 3.230s ▂▁▁▁▁

⚡ Production Builds

Metric Canary PR Change Trend
Fresh Build 4.712s 4.696s ▃▇▃▃▃
Cached Build 4.710s 4.697s ▄█▅▃▂
📦 Production Builds (Webpack) (Legacy)

📦 Production Builds (Webpack)

Metric Canary PR Change Trend
Fresh Build 23.614s 23.770s ▂▁▁▁▁
Cached Build 23.667s 23.724s ▁▁▁▁▁
node_modules Size 507 MB 507 MB ▄▄▄▄█
📦 Bundle Sizes

Bundle Sizes

⚡ Turbopack

Client

Main Bundles
Canary PR Change
0_i8g_3fi3-6f.js gzip 156 B N/A -
04hm05ar7kldw.js gzip 5.73 kB N/A -
04vwy7wxrecb_.js gzip 157 B N/A -
0cz1d0mv5g_q7.js gzip 39.4 kB 39.4 kB
0dj46kukqg96u.js gzip 13.9 kB N/A -
0dvitrl5zg37g.js gzip 8.82 kB N/A -
0sf7ysou-72zd.js gzip 8.71 kB N/A -
14nxiwj7uullj.js gzip 155 B N/A -
157abun3hwc_s.js gzip 10.3 kB N/A -
1cx1-17bgznfu.js gzip 157 B N/A -
1elt1qium-r2m.css gzip 115 B 115 B
1ft1yrq2eb0xd.js gzip 169 B N/A -
1jpaub6y8xlfr.js gzip 2.3 kB N/A -
1ot0mvscrc_uf.js gzip 233 B N/A -
2_m3xv2uq3sjc.js gzip 1.46 kB N/A -
24y34mwgrkqp4.js gzip 8.78 kB N/A -
2540h3hz66qz3.js gzip 65.6 kB N/A -
28v4tqimmn8l4.js gzip 151 B N/A -
29z3aanknpw56.js gzip 50.5 kB N/A -
2c-fd4y1zozz8.js gzip 8.79 kB N/A -
2d7416h_xd36x.js gzip 8.71 kB N/A -
2g21ny1t2kw37.js gzip 7.61 kB N/A -
2lyuhit6rn8fy.js gzip 9.44 kB N/A -
2q0gr8wfr3jwl.js gzip 8.77 kB N/A -
2t9e75oz6r0zp.js gzip 8.76 kB N/A -
2uku_olcn15b7.js gzip 8.79 kB N/A -
2wf_nyjvoy2r4.js gzip 70.9 kB N/A -
3-kwbgheec-ci.js gzip 155 B N/A -
30r8mm-46bdqy.js gzip 220 B 220 B
371n86pto-kgj.js gzip 158 B N/A -
3c1jdxkzlb8oq.js gzip 12.9 kB N/A -
3inab2jybr4k9.js gzip 450 B N/A -
3jkm5tdjvaf_q.js gzip 13.1 kB N/A -
3mt67agm5wp40.js gzip 10.6 kB N/A -
3saabek4kohwi.js gzip 10 kB N/A -
3tfrf86o28i0v.js gzip 154 B N/A -
3vq50hb6bueqw.js gzip 161 B N/A -
3wv2s_94p7wke.js gzip 156 B N/A -
3x2bdg7m-_t21.js gzip 159 B N/A -
3ywpfo7--1u3r.js gzip 155 B N/A -
4189xmby9yu1p.js gzip 13.6 kB N/A -
turbopack-0-..5n17.js gzip 4.21 kB N/A -
turbopack-05..59yo.js gzip 4.2 kB N/A -
turbopack-0p..cut0.js gzip 4.2 kB N/A -
turbopack-0v..5jfs.js gzip 4.2 kB N/A -
turbopack-16..y6m6.js gzip 4.2 kB N/A -
turbopack-25..l_t4.js gzip 4.2 kB N/A -
turbopack-2e..shwe.js gzip 4.2 kB N/A -
turbopack-2f..4izp.js gzip 4.2 kB N/A -
turbopack-2k..5fl3.js gzip 4.2 kB N/A -
turbopack-35..-tj7.js gzip 4.18 kB N/A -
turbopack-3j..q-8-.js gzip 4.2 kB N/A -
turbopack-3j..m437.js gzip 4.2 kB N/A -
turbopack-3l..jl60.js gzip 4.2 kB N/A -
turbopack-42..tulp.js gzip 4.2 kB N/A -
0_i7nqgx23st7.js gzip N/A 10 kB -
046r9klky-x1_.js gzip N/A 157 B -
0656_9vvfup5t.js gzip N/A 155 B -
06puhytyxk31p.js gzip N/A 8.82 kB -
0j_9aszpra-qr.js gzip N/A 13.9 kB -
0j42f9zonj0wd.js gzip N/A 13 kB -
0m34gln_kt4fg.js gzip N/A 5.73 kB -
0obs21c-l7bx0.js gzip N/A 161 B -
0wpwc5lo6ti3a.js gzip N/A 156 B -
1a4lin5zdzfca.js gzip N/A 158 B -
1g3q1ww01thnl.js gzip N/A 2.3 kB -
1hraqxuiymq6v.js gzip N/A 8.79 kB -
1istmfh_lhzph.js gzip N/A 156 B -
1l9un1sl77287.js gzip N/A 1.46 kB -
1tyg6um2s2ggb.js gzip N/A 163 B -
2--qjm3x3gqw6.js gzip N/A 154 B -
2147zgtf14z-q.js gzip N/A 234 B -
23bz3xsg-5-1s.js gzip N/A 8.71 kB -
27441mytv7pbm.js gzip N/A 9.43 kB -
2acb6_qmifbe5.js gzip N/A 155 B -
2cjkwjgm1zcfs.js gzip N/A 8.71 kB -
2scd8zaoyb8md.js gzip N/A 8.79 kB -
2st_qs6p_9us0.js gzip N/A 13.1 kB -
2zo2exm1d8qj1.js gzip N/A 13.6 kB -
3-aqaxm1bvjrs.js gzip N/A 156 B -
34vcsc6938ixq.js gzip N/A 50.5 kB -
3954-cz6pzj86.js gzip N/A 65.6 kB -
3csenaqja4uut.js gzip N/A 70.9 kB -
3f710q6kll2xn.js gzip N/A 7.61 kB -
3hn75zuxly9az.js gzip N/A 10.3 kB -
3hqh7m128tvsn.js gzip N/A 8.77 kB -
3hqti_t-zy1x4.js gzip N/A 449 B -
3mnawenie1flm.js gzip N/A 8.76 kB -
3ubsozlu6zs38.js gzip N/A 10.6 kB -
3vcak_9qmjjhk.js gzip N/A 170 B -
3wm88bhhq_1x8.js gzip N/A 157 B -
43iwfqjnx1cy_.js gzip N/A 8.78 kB -
44m30qkjgy5yl.js gzip N/A 151 B -
turbopack-08..9_o2.js gzip N/A 4.2 kB -
turbopack-08..-eji.js gzip N/A 4.2 kB -
turbopack-09..ocf2.js gzip N/A 4.2 kB -
turbopack-09..f5vk.js gzip N/A 4.21 kB -
turbopack-0c..5523.js gzip N/A 4.2 kB -
turbopack-1f..mh2f.js gzip N/A 4.2 kB -
turbopack-1k..u6qd.js gzip N/A 4.2 kB -
turbopack-1s..elcj.js gzip N/A 4.2 kB -
turbopack-26..pjyr.js gzip N/A 4.22 kB -
turbopack-27..l9he.js gzip N/A 4.2 kB -
turbopack-28..79us.js gzip N/A 4.2 kB -
turbopack-2x..6x5s.js gzip N/A 4.2 kB -
turbopack-30..ulgr.js gzip N/A 4.2 kB -
turbopack-3u..zfs4.js gzip N/A 4.18 kB -
Total 469 kB 469 kB ⚠️ +74 B

Server

Middleware
Canary PR Change
middleware-b..fest.js gzip 718 B 716 B
Total 718 B 716 B ✅ -2 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 435 B 437 B
Total 435 B 437 B ⚠️ +2 B

📦 Webpack

Client

Main Bundles
Canary PR Change
2258-HASH.js gzip 61.5 kB N/A -
2266-HASH.js gzip 4.69 kB N/A -
3317.HASH.js gzip 169 B N/A -
4866-HASH.js gzip 5.64 kB N/A -
9e302639-HASH.js gzip 62.8 kB N/A -
framework-HASH.js gzip 59.5 kB 59.5 kB
main-app-HASH.js gzip 255 B 254 B
main-HASH.js gzip 39.9 kB 39.9 kB
webpack-HASH.js gzip 1.68 kB 1.68 kB
175fd0fd-HASH.js gzip N/A 62.8 kB -
2596-HASH.js gzip N/A 5.63 kB -
34-HASH.js gzip N/A 61.4 kB -
5691.HASH.js gzip N/A 169 B -
9156-HASH.js gzip N/A 4.68 kB -
Total 236 kB 236 kB ✅ -129 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 193 B 193 B
_error-HASH.js gzip 181 B 182 B
css-HASH.js gzip 334 B 332 B
dynamic-HASH.js gzip 1.79 kB 1.81 kB
edge-ssr-HASH.js gzip 255 B 255 B
head-HASH.js gzip 351 B 348 B
hooks-HASH.js gzip 385 B 384 B
image-HASH.js gzip 580 B 580 B
index-HASH.js gzip 257 B 259 B
link-HASH.js gzip 2.51 kB 2.52 kB
routerDirect..HASH.js gzip 318 B 319 B
script-HASH.js gzip 387 B 386 B
withRouter-HASH.js gzip 316 B 316 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Total 7.97 kB 7.99 kB ⚠️ +19 B

Server

Edge SSR
Canary PR Change
edge-ssr.js gzip 126 kB 126 kB
page.js gzip 277 kB 271 kB 🟢 5.3 kB (-2%)
Total 403 kB 397 kB ✅ -5.52 kB
Middleware
Canary PR Change
middleware-b..fest.js gzip 619 B 615 B
middleware-r..fest.js gzip 155 B 155 B
middleware.js gzip 44.4 kB 44.9 kB 🔴 +494 B (+1%)
edge-runtime..pack.js gzip 842 B 842 B
Total 46 kB 46.5 kB ⚠️ +490 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 719 B 717 B
Total 719 B 717 B ✅ -2 B
Build Cache
Canary PR Change
0.pack gzip 4.49 MB 4.49 MB
index.pack gzip 114 kB 115 kB
index.pack.old gzip 114 kB 115 kB 🔴 +1.42 kB (+1%)
Total 4.72 MB 4.73 MB ⚠️ +2.79 kB

🔄 Shared (bundler-independent)

Runtimes
Canary PR Change
app-page-exp...dev.js gzip 351 kB 351 kB
app-page-exp..prod.js gzip 195 kB 195 kB
app-page-tur...dev.js gzip 350 kB 350 kB
app-page-tur..prod.js gzip 194 kB 194 kB
app-page-tur...dev.js gzip 347 kB 347 kB
app-page-tur..prod.js gzip 192 kB 192 kB
app-page.run...dev.js gzip 347 kB 347 kB
app-page.run..prod.js gzip 193 kB 193 kB
app-route-ex...dev.js gzip 77.6 kB 77.6 kB
app-route-ex..prod.js gzip 52.9 kB 52.9 kB
app-route-tu...dev.js gzip 77.6 kB 77.6 kB
app-route-tu..prod.js gzip 52.9 kB 52.9 kB
app-route-tu...dev.js gzip 77.2 kB 77.2 kB
app-route-tu..prod.js gzip 52.7 kB 52.7 kB
app-route.ru...dev.js gzip 77.2 kB 77.2 kB
app-route.ru..prod.js gzip 52.7 kB 52.7 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 44.3 kB 44.3 kB
pages-api-tu..prod.js gzip 33.8 kB 33.8 kB
pages-api.ru...dev.js gzip 44.3 kB 44.3 kB
pages-api.ru..prod.js gzip 33.7 kB 33.7 kB
pages-turbo....dev.js gzip 53.7 kB 53.7 kB
pages-turbo...prod.js gzip 39.4 kB 39.4 kB
pages.runtim...dev.js gzip 53.6 kB 53.6 kB
pages.runtim..prod.js gzip 39.4 kB 39.4 kB
server.runti..prod.js gzip 63.1 kB 63.1 kB
use-cache-pr...dev.js gzip 69.7 kB 69.7 kB
use-cache-pr...dev.js gzip 69.7 kB 69.7 kB
use-cache-pr...dev.js gzip 68 kB 68 kB
use-cache-pr...dev.js gzip 68 kB 68 kB
Total 3.37 MB 3.37 MB
📎 Tarball URL
https://vercel-packages.vercel.app/next/commits/8b9a6879a1038dfd74b947d04c5477a8ea0d5c00/next

Commit: 8b9a687

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 23, 2026

Failing test suites

Commit: 8b9a687 | About building and testing Next.js

pnpm test-dev test/e2e/app-dir/root-layout-redirect/root-layout-redirect.test.ts (job)

  • root-layout-redirect > should work using browser (DD)
Expand output

● root-layout-redirect › should work using browser

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

Expected: false
Received: true

  27 |     })
  28 |
> 29 |     expect(foundErrors).toBe(false)
     |                         ^
  30 |   })
  31 | })
  32 |

  at Object.toBe (e2e/app-dir/root-layout-redirect/root-layout-redirect.test.ts:29:25)

pnpm test-dev test/e2e/app-dir/next-image-events/next-image-events.test.ts (job)

  • next-image-events > should not call onLoad multiple times (DD)
Expand output

● next-image-events › should not call onLoad multiple times

expect(received).toEqual(expected) // deep equality

- Expected  - 0
+ Received  + 4

  Array [
    Object {
+     "message": "Failed to load resource: the server responded with a status of 404 (Not Found)",
+     "source": "error",
+   },
+   Object {
      "message": "hydrated image load",
      "source": "error",
    },
  ]

  24 |       expect(
  25 |         logs.slice(logsIdx).filter(({ source }) => source === 'error')
> 26 |       ).toEqual([
     |         ^
  27 |         {
  28 |           source: 'error',
  29 |           message: 'hydrated image load',

  at toEqual (e2e/app-dir/next-image-events/next-image-events.test.ts:26:9)
  at retry (lib/next-test-utils.ts:867:14)
  at Object.<anonymous> (e2e/app-dir/next-image-events/next-image-events.test.ts:22:5)

pnpm test-start test/e2e/custom-routes-i18n/custom-routes-i18n.test.ts (job)

  • Custom routes i18n > should navigate on the client with rewrites correctly (DD)
Expand output

● Custom routes i18n › should navigate on the client with rewrites correctly

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (e2e/custom-routes-i18n/custom-routes-i18n.test.ts:106:3)
  at Object.describe (e2e/custom-routes-i18n/custom-routes-i18n.test.ts:6:1)

pnpm test-start test/e2e/app-dir/bfcache-regression/bfcache-regression.test.ts (job)

  • bfcache-regression > should preserve interactivity after navigating back from another page via MPA navigation (DD)
Expand output

● bfcache-regression › should preserve interactivity after navigating back from another page via MPA navigation

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (e2e/app-dir/bfcache-regression/bfcache-regression.test.ts:9:3)
  at Object.describe (e2e/app-dir/bfcache-regression/bfcache-regression.test.ts:4:1)

pnpm test-start test/e2e/app-dir/route-page-manifest-bug/route-page-manifest-bug.test.ts (job)

  • route-page-manifest-bug > should work when requesting route handler after page (DD)
Expand output

● route-page-manifest-bug › should work when requesting route handler after page

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (e2e/app-dir/route-page-manifest-bug/route-page-manifest-bug.test.ts:10:3)
  at Object.describe (e2e/app-dir/route-page-manifest-bug/route-page-manifest-bug.test.ts:4:1)

pnpm test-start test/e2e/app-dir/interoperability-with-pages/navigation.test.ts (job)

  • navigation between pages and app dir > It should be able to navigate pages -> app and go back an forward (DD)
  • navigation between pages and app dir > It should be able to navigate app -> pages and go back and forward (DD)
Expand output

● navigation between pages and app dir › It should be able to navigate pages -> app and go back an forward

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (e2e/app-dir/interoperability-with-pages/navigation.test.ts:41:5)
  at Object.describe (e2e/app-dir/interoperability-with-pages/navigation.test.ts:3:1)

● navigation between pages and app dir › It should be able to navigate app -> pages and go back and forward

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (e2e/app-dir/interoperability-with-pages/navigation.test.ts:61:5)
  at Object.describe (e2e/app-dir/interoperability-with-pages/navigation.test.ts:3:1)

pnpm test-start test/e2e/app-dir/missing-suspense-with-csr-bailout/missing-suspense-with-csr-bailout.test.ts (job)

  • missing-suspense-with-csr-bailout > next/dynamic > does not emit errors related to bailing out of client side rendering (DD)
Expand output

● missing-suspense-with-csr-bailout › next/dynamic › does not emit errors related to bailing out of client side rendering

stop() must be called before cleaning

  533 |   public async clean() {
  534 |     if (this.childProcess) {
> 535 |       throw new Error(`stop() must be called before cleaning`)
      |             ^
  536 |     }
  537 |
  538 |     const keptFiles = [

  at NextStartInstance.clean (lib/next-modes/base.ts:535:13)
  at Object.clean (e2e/app-dir/missing-suspense-with-csr-bailout/missing-suspense-with-csr-bailout.test.ts:21:16)

● missing-suspense-with-csr-bailout › next/dynamic › does not emit errors related to bailing out of client side rendering

ENOENT: no such file or directory, rename '/tmp/next-install-cd00109a1a2c9e139e3fe9ad00433581eaff4bf1a09e1035b11558bed8f09b71/app/_page.js' -> '/tmp/next-install-cd00109a1a2c9e139e3fe9ad00433581eaff4bf1a09e1035b11558bed8f09b71/app/page.js'

pnpm test-dev test/development/basic/allowed-dev-origins.test.ts (job)

  • allowed-dev-origins, basePath: "" > configured allowed origins > should allow dev WebSocket from configured cross-site (DD)
  • allowed-dev-origins, basePath: "" > default blocking > should block WebSocket from cross-site (DD)
  • allowed-dev-origins, basePath: "/docs" > configured allowed origins > should allow dev WebSocket from configured cross-site (DD)
  • allowed-dev-origins, basePath: "/docs" > default blocking > should block WebSocket from cross-site (DD)
Expand output

● allowed-dev-origins, basePath: "" › default blocking › should block WebSocket from cross-site

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

Expected substring: "from \"example.vercel.sh\""
Received string:    "▲ Next.js 16.3.0-canary.27 (webpack)
- Local:         http://localhost:34819
- Network:       http://10.0.0.25:34819
✓ Ready in 545ms
- Experiments (use with caution):
  ✓ strictRouteTypes (enabled by `__NEXT_EXPERIMENTAL_STRICT_ROUTE_TYPES`)·
○ Compiling /_error ...
 GET /404 404 in 3.2s (next.js: 3.2s, application-code: 42ms)
⚠ Blocked cross-origin request to Next.js dev resource /_next/hmr from \"127.0.0.1\".
Cross-origin access to Next.js dev resources is blocked by default for safety.·
To allow this host in development, add it to \"allowedDevOrigins\" in next.config.js and restart the dev server:·
// next.config.js
module.exports = {
  allowedDevOrigins: ['127.0.0.1'],
}·
Read more: https://nextjs.org/docs/app/api-reference/config/next-config-js/allowedDevOrigins
"

  110 |   }
  111 |
> 112 |   expect(output).toContain(`from "${options.source}"`)
      |                  ^
  113 |   expect(output).toContain(
  114 |     'To allow this host in development, add it to "allowedDevOrigins" in next.config.js and restart the dev server:'
  115 |   )

  at toContain (development/basic/allowed-dev-origins.test.ts:112:18)
  at Object.<anonymous> (development/basic/allowed-dev-origins.test.ts:186:11)

● allowed-dev-origins, basePath: "" › configured allowed origins › should allow dev WebSocket from configured cross-site

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

Expected: "connected"
Received: "error"

  388 |           await browser.eval(websocketSnippet)
  389 |           await retry(async () => {
> 390 |             expect(await browser.elementByCss('#status').text()).toBe(
      |                                                                  ^
  391 |               'connected'
  392 |             )
  393 |           })

  at toBe (development/basic/allowed-dev-origins.test.ts:390:66)
  at retry (lib/next-test-utils.ts:867:14)
  at Object.<anonymous> (development/basic/allowed-dev-origins.test.ts:389:11)

● allowed-dev-origins, basePath: "/docs" › default blocking › should block WebSocket from cross-site

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

Expected substring: "from \"example.vercel.sh\""
Received string:    "▲ Next.js 16.3.0-canary.27 (webpack)
- Local:         http://localhost:43825
- Network:       http://10.0.0.25:43825
✓ Ready in 639ms
- Experiments (use with caution):
  ✓ strictRouteTypes (enabled by `__NEXT_EXPERIMENTAL_STRICT_ROUTE_TYPES`)·
○ Compiling /_error ...
 GET /404 404 in 3.5s (next.js: 3.5s, application-code: 69ms)
⚠ Blocked cross-origin request to Next.js dev resource /docs/_next/hmr from \"127.0.0.1\".
Cross-origin access to Next.js dev resources is blocked by default for safety.·
To allow this host in development, add it to \"allowedDevOrigins\" in next.config.js and restart the dev server:·
// next.config.js
module.exports = {
  allowedDevOrigins: ['127.0.0.1'],
}·
Read more: https://nextjs.org/docs/app/api-reference/config/next-config-js/allowedDevOrigins
"

  110 |   }
  111 |
> 112 |   expect(output).toContain(`from "${options.source}"`)
      |                  ^
  113 |   expect(output).toContain(
  114 |     'To allow this host in development, add it to "allowedDevOrigins" in next.config.js and restart the dev server:'
  115 |   )

  at toContain (development/basic/allowed-dev-origins.test.ts:112:18)
  at Object.<anonymous> (development/basic/allowed-dev-origins.test.ts:186:11)

● allowed-dev-origins, basePath: "/docs" › configured allowed origins › should allow dev WebSocket from configured cross-site

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

Expected: "connected"
Received: "error"

  388 |           await browser.eval(websocketSnippet)
  389 |           await retry(async () => {
> 390 |             expect(await browser.elementByCss('#status').text()).toBe(
      |                                                                  ^
  391 |               'connected'
  392 |             )
  393 |           })

  at toBe (development/basic/allowed-dev-origins.test.ts:390:66)
  at retry (lib/next-test-utils.ts:867:14)
  at Object.<anonymous> (development/basic/allowed-dev-origins.test.ts:389:11)

pnpm test-dev test/development/acceptance-app/dynamic-metadata-error.test.ts (job)

  • dynamic metadata error > should error if the default export of dynamic image is missing (DD)
Expand output

● dynamic metadata error › should error if the default export of dynamic image is missing

page.goto: net::ERR_HTTP_RESPONSE_CODE_FAILURE at http://localhost:41331/opengraph-image
Call log:
  - navigating to "http://localhost:41331/opengraph-image", waiting until "load"

  371 |     await opts?.beforePageLoad?.(page)
  372 |
> 373 |     await page.goto(url, { waitUntil: opts?.waitUntil ?? 'load' })
      |                ^
  374 |   }
  375 |
  376 |   back(options?: Parameters<Page['goBack']>[0]) {

  at Playwright.goto (lib/browsers/playwright.ts:373:16)
  at webdriver (lib/next-webdriver.ts:170:3)
  at createSandbox (lib/development-sandbox.ts:54:21)
  at Object.<anonymous> (development/acceptance-app/dynamic-metadata-error.test.ts:89:28)

● Test suite failed to run

You must use `using` to create a sandbox, i.e., `await using sandbox = await createSandbox(`

  185 |     setImmediate(() => {
  186 |       if (!unwrappedByTypeScriptUsingKeyword) {
> 187 |         throw new Error(
      |               ^
  188 |           'You must use `using` to create a sandbox, i.e., `await using sandbox = await createSandbox(`'
  189 |         )
  190 |       }

  at Immediate.<anonymous> (lib/development-sandbox.ts:187:15)

pnpm test-dev test/e2e/app-dir/root-layout-redirect/root-layout-redirect.test.ts (job)

  • root-layout-redirect > should work using browser (DD)
Expand output

● root-layout-redirect › should work using browser

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

Expected: false
Received: true

  27 |     })
  28 |
> 29 |     expect(foundErrors).toBe(false)
     |                         ^
  30 |   })
  31 | })
  32 |

  at Object.toBe (e2e/app-dir/root-layout-redirect/root-layout-redirect.test.ts:29:25)

pnpm test-dev test/e2e/next-image-new/app-dir/app-dir.test.ts (job)

  • Image Component App Dir Tests > should callback native onLoad with sythetic event (DD)
Expand output

● Image Component App Dir Tests › should callback native onLoad with sythetic event

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

Expected: "loaded img1 with native onLoad, count 2"
Received: "loaded img1 with native onLoad, count 1"

  551 |       expect(
  552 |         await browser.eval(`document.getElementById("msg1").textContent`)
> 553 |       ).toBe('loaded img1 with native onLoad, count 2')
      |         ^
  554 |     })
  555 |     await retry(async () => {
  556 |       expect(

  at toBe (e2e/next-image-new/app-dir/app-dir.test.ts:553:9)
  at retry (lib/next-test-utils.ts:867:14)
  at Object.<anonymous> (e2e/next-image-new/app-dir/app-dir.test.ts:550:5)

pnpm test-dev test/e2e/app-dir/next-image-events/next-image-events.test.ts (job)

  • next-image-events > should not call onLoad multiple times (DD)
Expand output

● next-image-events › should not call onLoad multiple times

expect(received).toEqual(expected) // deep equality

- Expected  - 0
+ Received  + 4

  Array [
    Object {
+     "message": "Failed to load resource: the server responded with a status of 404 (Not Found)",
+     "source": "error",
+   },
+   Object {
      "message": "hydrated image load",
      "source": "error",
    },
  ]

  24 |       expect(
  25 |         logs.slice(logsIdx).filter(({ source }) => source === 'error')
> 26 |       ).toEqual([
     |         ^
  27 |         {
  28 |           source: 'error',
  29 |           message: 'hydrated image load',

  at toEqual (e2e/app-dir/next-image-events/next-image-events.test.ts:26:9)
  at retry (lib/next-test-utils.ts:867:14)
  at Object.<anonymous> (e2e/app-dir/next-image-events/next-image-events.test.ts:22:5)

pnpm test-start test/production/pages-dir/production/test/index.test.ts (job)

  • Production Usage > should navigate to external site and back (DD)
  • Production Usage > should navigate to external site and back (with query) (DD)
  • Production Usage > Misc > should reload the page on page script error (DD)
  • Production Usage > Misc > should reload the page on page script error with prefetch (DD)
Expand output

● Production Usage › should navigate to external site and back

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (production/pages-dir/production/test/index.test.ts:774:3)
  at Object.describe (production/pages-dir/production/test/index.test.ts:31:1)

● Production Usage › should navigate to external site and back (with query)

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (production/pages-dir/production/test/index.test.ts:809:3)
  at Object.describe (production/pages-dir/production/test/index.test.ts:31:1)

● Production Usage › Misc › should reload the page on page script error

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (production/pages-dir/production/test/index.test.ts:903:7)
  at describe (production/pages-dir/production/test/index.test.ts:874:3)
  at Object.describe (production/pages-dir/production/test/index.test.ts:31:1)

● Production Usage › Misc › should reload the page on page script error with prefetch

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (production/pages-dir/production/test/index.test.ts:1004:7)
  at describe (production/pages-dir/production/test/index.test.ts:874:3)
  at Object.describe (production/pages-dir/production/test/index.test.ts:31:1)

pnpm test-dev test/e2e/app-dir/root-layout-redirect/root-layout-redirect.test.ts (job)

  • root-layout-redirect > should work using browser (DD)
Expand output

● root-layout-redirect › should work using browser

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

Expected: false
Received: true

  27 |     })
  28 |
> 29 |     expect(foundErrors).toBe(false)
     |                         ^
  30 |   })
  31 | })
  32 |

  at Object.toBe (e2e/app-dir/root-layout-redirect/root-layout-redirect.test.ts:29:25)

pnpm test-dev test/e2e/app-dir/instant-navigation-testing-api/instant-navigation-testing-api.test.ts (job)

  • instant-navigation-testing-api > renders runtime-prefetched content instantly during navigation (DD)
Expand output

● instant-navigation-testing-api › renders runtime-prefetched content instantly during navigation

locator.waitFor: Timeout 60000ms exceeded.
Call log:
  - waiting for locator('[data-testid="search-param-value"]') to be visible

  105 |         '[data-testid="search-param-value"]'
  106 |       )
> 107 |       await searchParamValue.waitFor({ state: 'visible' })
      |                              ^
  108 |       expect(await searchParamValue.textContent()).toContain(
  109 |         'myParam: testValue'
  110 |       )

  at waitFor (e2e/app-dir/instant-navigation-testing-api/instant-navigation-testing-api.test.ts:107:30)
  at instant (../packages/next-playwright/dist/index.js:50:16)
  at Object.<anonymous> (e2e/app-dir/instant-navigation-testing-api/instant-navigation-testing-api.test.ts:99:5)

pnpm test-dev test/e2e/app-dir/next-image-events/next-image-events.test.ts (job)

  • next-image-events > should not call onLoad multiple times (DD)
Expand output

● next-image-events › should not call onLoad multiple times

expect(received).toEqual(expected) // deep equality

- Expected  - 0
+ Received  + 4

  Array [
    Object {
+     "message": "Failed to load resource: the server responded with a status of 404 (Not Found)",
+     "source": "error",
+   },
+   Object {
      "message": "hydrated image load",
      "source": "error",
    },
  ]

  24 |       expect(
  25 |         logs.slice(logsIdx).filter(({ source }) => source === 'error')
> 26 |       ).toEqual([
     |         ^
  27 |         {
  28 |           source: 'error',
  29 |           message: 'hydrated image load',

  at toEqual (e2e/app-dir/next-image-events/next-image-events.test.ts:26:9)
  at retry (lib/next-test-utils.ts:867:14)
  at Object.<anonymous> (e2e/app-dir/next-image-events/next-image-events.test.ts:22:5)

pnpm test-start test/e2e/custom-routes-i18n/custom-routes-i18n.test.ts (job)

  • Custom routes i18n > should navigate on the client with rewrites correctly (DD)
Expand output

● Custom routes i18n › should navigate on the client with rewrites correctly

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (e2e/custom-routes-i18n/custom-routes-i18n.test.ts:106:3)
  at Object.describe (e2e/custom-routes-i18n/custom-routes-i18n.test.ts:6:1)

pnpm test-start test/e2e/app-dir/bfcache-regression/bfcache-regression.test.ts (job)

  • bfcache-regression > should preserve interactivity after navigating back from another page via MPA navigation (DD)
Expand output

● bfcache-regression › should preserve interactivity after navigating back from another page via MPA navigation

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (e2e/app-dir/bfcache-regression/bfcache-regression.test.ts:9:3)
  at Object.describe (e2e/app-dir/bfcache-regression/bfcache-regression.test.ts:4:1)

pnpm test-start test/e2e/app-dir/route-page-manifest-bug/route-page-manifest-bug.test.ts (job)

  • route-page-manifest-bug > should work when requesting route handler after page (DD)
Expand output

● route-page-manifest-bug › should work when requesting route handler after page

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (e2e/app-dir/route-page-manifest-bug/route-page-manifest-bug.test.ts:10:3)
  at Object.describe (e2e/app-dir/route-page-manifest-bug/route-page-manifest-bug.test.ts:4:1)

pnpm test-start test/e2e/app-dir/interoperability-with-pages/navigation.test.ts (job)

  • navigation between pages and app dir > It should be able to navigate pages -> app and go back an forward (DD)
  • navigation between pages and app dir > It should be able to navigate app -> pages and go back and forward (DD)
Expand output

● navigation between pages and app dir › It should be able to navigate pages -> app and go back an forward

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (e2e/app-dir/interoperability-with-pages/navigation.test.ts:41:5)
  at Object.describe (e2e/app-dir/interoperability-with-pages/navigation.test.ts:3:1)

● navigation between pages and app dir › It should be able to navigate app -> pages and go back and forward

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (e2e/app-dir/interoperability-with-pages/navigation.test.ts:61:5)
  at Object.describe (e2e/app-dir/interoperability-with-pages/navigation.test.ts:3:1)

pnpm test-start test/e2e/app-dir/missing-suspense-with-csr-bailout/missing-suspense-with-csr-bailout.test.ts (job)

  • missing-suspense-with-csr-bailout > next/dynamic > does not emit errors related to bailing out of client side rendering (DD)
Expand output

● missing-suspense-with-csr-bailout › next/dynamic › does not emit errors related to bailing out of client side rendering

stop() must be called before cleaning

  533 |   public async clean() {
  534 |     if (this.childProcess) {
> 535 |       throw new Error(`stop() must be called before cleaning`)
      |             ^
  536 |     }
  537 |
  538 |     const keptFiles = [

  at NextStartInstance.clean (lib/next-modes/base.ts:535:13)
  at Object.clean (e2e/app-dir/missing-suspense-with-csr-bailout/missing-suspense-with-csr-bailout.test.ts:21:16)

● missing-suspense-with-csr-bailout › next/dynamic › does not emit errors related to bailing out of client side rendering

ENOENT: no such file or directory, rename '/tmp/next-install-0ca7a6fe5430506c2f6de9d49e7ee67d81253c0150ca05c73fdf933f35a41fb2/app/_page.js' -> '/tmp/next-install-0ca7a6fe5430506c2f6de9d49e7ee67d81253c0150ca05c73fdf933f35a41fb2/app/page.js'

pnpm test-dev test/e2e/app-dir/root-layout-redirect/root-layout-redirect.test.ts (job)

  • root-layout-redirect > should work using browser (DD)
Expand output

● root-layout-redirect › should work using browser

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

Expected: false
Received: true

  27 |     })
  28 |
> 29 |     expect(foundErrors).toBe(false)
     |                         ^
  30 |   })
  31 | })
  32 |

  at Object.toBe (e2e/app-dir/root-layout-redirect/root-layout-redirect.test.ts:29:25)

pnpm test-dev test/e2e/app-dir/next-image-events/next-image-events.test.ts (job)

  • next-image-events > should not call onLoad multiple times (DD)
Expand output

● next-image-events › should not call onLoad multiple times

expect(received).toEqual(expected) // deep equality

- Expected  - 0
+ Received  + 4

  Array [
    Object {
+     "message": "Failed to load resource: the server responded with a status of 404 (Not Found)",
+     "source": "error",
+   },
+   Object {
      "message": "hydrated image load",
      "source": "error",
    },
  ]

  24 |       expect(
  25 |         logs.slice(logsIdx).filter(({ source }) => source === 'error')
> 26 |       ).toEqual([
     |         ^
  27 |         {
  28 |           source: 'error',
  29 |           message: 'hydrated image load',

  at toEqual (e2e/app-dir/next-image-events/next-image-events.test.ts:26:9)
  at retry (lib/next-test-utils.ts:867:14)
  at Object.<anonymous> (e2e/app-dir/next-image-events/next-image-events.test.ts:22:5)

pnpm test-start test/e2e/custom-routes-i18n/custom-routes-i18n.test.ts (job)

  • Custom routes i18n > should navigate on the client with rewrites correctly (DD)
Expand output

● Custom routes i18n › should navigate on the client with rewrites correctly

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (e2e/custom-routes-i18n/custom-routes-i18n.test.ts:106:3)
  at Object.describe (e2e/custom-routes-i18n/custom-routes-i18n.test.ts:6:1)

pnpm test-start test/e2e/app-dir/bfcache-regression/bfcache-regression.test.ts (job)

  • bfcache-regression > should preserve interactivity after navigating back from another page via MPA navigation (DD)
Expand output

● bfcache-regression › should preserve interactivity after navigating back from another page via MPA navigation

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (e2e/app-dir/bfcache-regression/bfcache-regression.test.ts:9:3)
  at Object.describe (e2e/app-dir/bfcache-regression/bfcache-regression.test.ts:4:1)

pnpm test-start test/e2e/app-dir/route-page-manifest-bug/route-page-manifest-bug.test.ts (job)

  • route-page-manifest-bug > should work when requesting route handler after page (DD)
Expand output

● route-page-manifest-bug › should work when requesting route handler after page

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (e2e/app-dir/route-page-manifest-bug/route-page-manifest-bug.test.ts:10:3)
  at Object.describe (e2e/app-dir/route-page-manifest-bug/route-page-manifest-bug.test.ts:4:1)

pnpm test-start test/e2e/app-dir/interoperability-with-pages/navigation.test.ts (job)

  • navigation between pages and app dir > It should be able to navigate pages -> app and go back an forward (DD)
  • navigation between pages and app dir > It should be able to navigate app -> pages and go back and forward (DD)
Expand output

● navigation between pages and app dir › It should be able to navigate pages -> app and go back an forward

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (e2e/app-dir/interoperability-with-pages/navigation.test.ts:41:5)
  at Object.describe (e2e/app-dir/interoperability-with-pages/navigation.test.ts:3:1)

● navigation between pages and app dir › It should be able to navigate app -> pages and go back and forward

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (e2e/app-dir/interoperability-with-pages/navigation.test.ts:61:5)
  at Object.describe (e2e/app-dir/interoperability-with-pages/navigation.test.ts:3:1)

pnpm test-start test/e2e/app-dir/missing-suspense-with-csr-bailout/missing-suspense-with-csr-bailout.test.ts (job)

  • missing-suspense-with-csr-bailout > next/dynamic > does not emit errors related to bailing out of client side rendering (DD)
Expand output

● missing-suspense-with-csr-bailout › next/dynamic › does not emit errors related to bailing out of client side rendering

stop() must be called before cleaning

  533 |   public async clean() {
  534 |     if (this.childProcess) {
> 535 |       throw new Error(`stop() must be called before cleaning`)
      |             ^
  536 |     }
  537 |
  538 |     const keptFiles = [

  at NextStartInstance.clean (lib/next-modes/base.ts:535:13)
  at Object.clean (e2e/app-dir/missing-suspense-with-csr-bailout/missing-suspense-with-csr-bailout.test.ts:21:16)

● missing-suspense-with-csr-bailout › next/dynamic › does not emit errors related to bailing out of client side rendering

ENOENT: no such file or directory, rename '/tmp/next-install-ce930538e686b2b147656e6b20347ec7e7edaba66ffd1b473636d32e1e7e430b/app/_page.js' -> '/tmp/next-install-ce930538e686b2b147656e6b20347ec7e7edaba66ffd1b473636d32e1e7e430b/app/page.js'

pnpm test-start test/e2e/app-dir/error-boundary-navigation/index.test.ts (job)

  • app dir - not found navigation > should allow navigating to a non-existent page (DD)
Expand output

● app dir - not found navigation › should allow navigating to a non-existent page

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (e2e/app-dir/error-boundary-navigation/index.test.ts:82:3)
  at runTest (e2e/app-dir/error-boundary-navigation/index.test.ts:133:3)
  at Object.describe (e2e/app-dir/error-boundary-navigation/index.test.ts:128:1)

pnpm test-start test/e2e/app-dir/missing-suspense-with-csr-bailout/missing-suspense-with-csr-bailout.test.ts (job)

  • missing-suspense-with-csr-bailout > next/dynamic > does not emit errors related to bailing out of client side rendering (DD)
Expand output

● missing-suspense-with-csr-bailout › next/dynamic › does not emit errors related to bailing out of client side rendering

stop() must be called before cleaning

  533 |   public async clean() {
  534 |     if (this.childProcess) {
> 535 |       throw new Error(`stop() must be called before cleaning`)
      |             ^
  536 |     }
  537 |
  538 |     const keptFiles = [

  at NextStartInstance.clean (lib/next-modes/base.ts:535:13)
  at Object.clean (e2e/app-dir/missing-suspense-with-csr-bailout/missing-suspense-with-csr-bailout.test.ts:21:16)

● missing-suspense-with-csr-bailout › next/dynamic › does not emit errors related to bailing out of client side rendering

ENOENT: no such file or directory, rename '/tmp/next-install-1aa06bd1472e58af270a996c5707d4874c03ad97edeb32eadb4e1883efe41b6a/app/_page.js' -> '/tmp/next-install-1aa06bd1472e58af270a996c5707d4874c03ad97edeb32eadb4e1883efe41b6a/app/page.js'

pnpm test-start test/e2e/app-dir/route-page-manifest-bug/route-page-manifest-bug.test.ts (job)

  • route-page-manifest-bug > should work when requesting route handler after page (DD)
Expand output

● route-page-manifest-bug › should work when requesting route handler after page

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

  51 |       }
  52 |
> 53 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  54 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  55 |     },
  56 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:53:30)
  at it (e2e/app-dir/route-page-manifest-bug/route-page-manifest-bug.test.ts:10:3)
  at Object.describe (e2e/app-dir/route-page-manifest-bug/route-page-manifest-bug.test.ts:4:1)

pnpm test-start test/e2e/app-dir/shallow-routing/shallow-routing.test.ts ([job](https://github.c

... truncated to fit in one GitHub comment ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant