Skip to content

test: Run Adapter e2e tests with Turbopack instead#90600

Merged
ijjk merged 3 commits intocanaryfrom
mischnic/deploy-test-adapters-turbopack
Feb 27, 2026
Merged

test: Run Adapter e2e tests with Turbopack instead#90600
ijjk merged 3 commits intocanaryfrom
mischnic/deploy-test-adapters-turbopack

Conversation

@mischnic
Copy link
Member

No description provided.

@nextjs-bot nextjs-bot added the created-by: Turbopack team PRs by the Turbopack team. label Feb 26, 2026
Copy link
Member Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@mischnic mischnic marked this pull request as ready for review February 26, 2026 16:14
@mischnic mischnic requested a review from ijjk February 26, 2026 16:15
@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Feb 26, 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) 455ms 455ms ▁▆▁▁▁
Cold (Ready in log) 438ms 442ms ▁▅▁▁▁
Cold (First Request) 1.215s 1.253s ▃▅▃▃▁
Warm (Listen) 455ms 456ms ▁▆▁▁▁
Warm (Ready in log) 442ms 442ms ▁▆▁▁▁
Warm (First Request) 343ms 343ms ▁▆▁▁▁
📦 Dev Server (Webpack) (Legacy)

📦 Dev Server (Webpack)

Metric Canary PR Change Trend
Cold (Listen) 456ms 456ms ▁▁▁▁▁
Cold (Ready in log) 441ms 443ms ▄▁▁▁▄
Cold (First Request) 1.931s 1.925s ▂▁▁▁▂
Warm (Listen) 456ms 456ms ▁▁▁▁▁
Warm (Ready in log) 439ms 439ms ▃▁▁▁▃
Warm (First Request) 1.931s 1.938s ▂▁▁▁▂

⚡ Production Builds

Metric Canary PR Change Trend
Fresh Build 3.867s 3.903s ▁▅▁▁▁
Cached Build 3.990s 3.952s ▁▅▁▁▁
📦 Production Builds (Webpack) (Legacy)

📦 Production Builds (Webpack)

Metric Canary PR Change Trend
Fresh Build 14.106s 14.085s ▁▁▁▁▁
Cached Build 14.173s 14.211s ▁▁▁▁▂
node_modules Size 475 MB 475 MB ▁▁▁▁▁
📦 Bundle Sizes

Bundle Sizes

⚡ Turbopack

Client

Main Bundles: **400 kB** → **400 kB** ✅ -5 B

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

Server

Middleware
Canary PR Change
middleware-b..fest.js gzip 764 B 762 B
Total 764 B 762 B ✅ -2 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 449 B 451 B
Total 449 B 451 B ⚠️ +2 B

📦 Webpack

Client

Main Bundles
Canary PR Change
5528-HASH.js gzip 5.54 kB N/A -
6280-HASH.js gzip 58.4 kB N/A -
6335.HASH.js gzip 169 B N/A -
912-HASH.js gzip 4.59 kB N/A -
e8aec2e4-HASH.js gzip 62.6 kB N/A -
framework-HASH.js gzip 59.7 kB 59.7 kB
main-app-HASH.js gzip 255 B 253 B
main-HASH.js gzip 39.1 kB 39.1 kB
webpack-HASH.js gzip 1.68 kB 1.68 kB
262-HASH.js gzip N/A 4.59 kB -
2889.HASH.js gzip N/A 169 B -
5602-HASH.js gzip N/A 5.55 kB -
6948ada0-HASH.js gzip N/A 62.6 kB -
9544-HASH.js gzip N/A 59.1 kB -
Total 232 kB 233 kB ⚠️ +714 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 194 B
_error-HASH.js gzip 183 B 180 B 🟢 3 B (-2%)
css-HASH.js gzip 331 B 330 B
dynamic-HASH.js gzip 1.81 kB 1.81 kB
edge-ssr-HASH.js gzip 256 B 256 B
head-HASH.js gzip 351 B 352 B
hooks-HASH.js gzip 384 B 383 B
image-HASH.js gzip 580 B 581 B
index-HASH.js gzip 260 B 260 B
link-HASH.js gzip 2.5 kB 2.5 kB
routerDirect..HASH.js gzip 320 B 319 B
script-HASH.js gzip 386 B 386 B
withRouter-HASH.js gzip 315 B 315 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Total 7.97 kB 7.97 kB ✅ -2 B

Server

Edge SSR
Canary PR Change
edge-ssr.js gzip 125 kB 125 kB
page.js gzip 254 kB 255 kB
Total 379 kB 379 kB ⚠️ +274 B
Middleware
Canary PR Change
middleware-b..fest.js gzip 617 B 614 B
middleware-r..fest.js gzip 156 B 155 B
middleware.js gzip 43.9 kB 43.9 kB
edge-runtime..pack.js gzip 842 B 842 B
Total 45.5 kB 45.5 kB ✅ -37 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 715 B 718 B
Total 715 B 718 B ⚠️ +3 B
Build Cache
Canary PR Change
0.pack gzip 4.02 MB 4.02 MB 🔴 +6.04 kB (+0%)
index.pack gzip 102 kB 103 kB
index.pack.old gzip 101 kB 102 kB
Total 4.22 MB 4.23 MB ⚠️ +6.92 kB

🔄 Shared (bundler-independent)

Runtimes
Canary PR Change
app-page-exp...dev.js gzip 320 kB 320 kB
app-page-exp..prod.js gzip 170 kB 170 kB
app-page-tur...dev.js gzip 319 kB 319 kB
app-page-tur..prod.js gzip 170 kB 170 kB
app-page-tur...dev.js gzip 316 kB 316 kB
app-page-tur..prod.js gzip 168 kB 168 kB
app-page.run...dev.js gzip 316 kB 316 kB
app-page.run..prod.js gzip 168 kB 168 kB
app-route-ex...dev.js gzip 70.8 kB 70.8 kB
app-route-ex..prod.js gzip 49.2 kB 49.2 kB
app-route-tu...dev.js gzip 70.8 kB 70.8 kB
app-route-tu..prod.js gzip 49.2 kB 49.2 kB
app-route-tu...dev.js gzip 70.4 kB 70.4 kB
app-route-tu..prod.js gzip 49 kB 49 kB
app-route.ru...dev.js gzip 70.4 kB 70.4 kB
app-route.ru..prod.js gzip 49 kB 49 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 43.2 kB 43.2 kB
pages-api-tu..prod.js gzip 32.9 kB 32.9 kB
pages-api.ru...dev.js gzip 43.2 kB 43.2 kB
pages-api.ru..prod.js gzip 32.8 kB 32.8 kB
pages-turbo....dev.js gzip 52.5 kB 52.5 kB
pages-turbo...prod.js gzip 38.5 kB 38.5 kB
pages.runtim...dev.js gzip 52.5 kB 52.5 kB
pages.runtim..prod.js gzip 38.4 kB 38.4 kB
server.runti..prod.js gzip 61.9 kB 61.9 kB
Total 2.82 MB 2.82 MB ✅ -2 B
📎 Tarball URL
next@https://vercel-packages.vercel.app/next/prs/90600/next

Copy link
Member

@ijjk ijjk left a comment

Choose a reason for hiding this comment

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

@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Feb 26, 2026

Failing test suites

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

pnpm test-dev test/e2e/app-dir/actions/app-action.test.ts (job)

  • app-dir action handling > fetch actions > should handle redirects to routes that provide an invalid RSC response (DD)
Expand output

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

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

Expected substring: "Hello from a pages route"
Received string:    "0.8838577464759498
Client
Server
Client and Server
0
+1+1 (Slow)-1*2
redirect to a pages route
submit
test"

  1331 |
  1332 |       await retry(async () => {
> 1333 |         expect(await browser.elementByCss('body').text()).toContain(
       |                                                           ^
  1334 |           'Hello from a pages route'
  1335 |         )
  1336 |         expect(await browser.url()).toBe(`${next.url}/pages-dir`)

  at toContain (e2e/app-dir/actions/app-action.test.ts:1333:59)
  at retry (lib/next-test-utils.ts:831:14)
  at Object.<anonymous> (e2e/app-dir/actions/app-action.test.ts:1332:7)

pnpm test-deploy test/e2e/edge-async-local-storage/index.test.ts (job)

  • edge api can use async local storage > cans use multiple instances per request (DD)
Expand output

● edge api can use async local storage › cans use multiple instances per request

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

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

  at ../node_modules/.pnpm/jest-each@29.7.0/node_modules/jest-each/build/bind.js:47:15
      at Array.forEach (<anonymous>)
  at Object.apply (lib/e2e-utils/index.ts:52:30)
  at cases (e2e/edge-async-local-storage/index.test.ts:71:11)
  at Object.describe (e2e/edge-async-local-storage/index.test.ts:5:1)

@mischnic
Copy link
Member Author

https://github.com/vercel/next.js/actions/runs/22451438582/job/65020751844:

  FAIL Turbopack test/e2e/edge-pages-support/index.test.ts (51.575 s)
    edge-render-getserversideprops
      ✓ should have correct query for pages/api (458 ms)
      ✓ should have correct query for pages/api dynamic (384 ms)
      ✓ should have correct query/params on index (331 ms)
      ✓ should have correct query/params on /[id] (337 ms)
      ✓ should have correct query/params on rewrite (164 ms)
      ✓ should have correct query/params on dynamic rewrite (132 ms)
      ✕ should respond to _next/data for index correctly (315 ms)
      ✓ should respond to _next/data for [id] correctly (132 ms)
  
    ● edge-render-getserversideprops › should respond to _next/data for index correctly
  
      expect(received).toBe(expected) // Object.is equality
  
      Expected: null
      Received: {"id": "index"}
  
        131 |     const { pageProps: props } = await res.json()
        132 |     expect(props.query).toEqual({})
      > 133 |     expect(props.params).toBe(null)
            |                          ^
        134 |   })
        135 |
        136 |   it('should respond to _next/data for [id] correctly', async () => {

@ijjk
Copy link
Member

ijjk commented Feb 26, 2026

Looking at that test now

ijjk added a commit that referenced this pull request Feb 26, 2026
Fixes failing assertion with turbopack

Verified against turbopack + adapter deploy test locally
<img width="2076" height="1336" alt="CleanShot 2026-02-26 at 13 25
30@2x"
src="https://github.com/user-attachments/assets/a8c66314-8163-4371-b02a-dc7146989425"
/>


x-ref:
#90600 (comment)
@ijjk
Copy link
Member

ijjk commented Feb 26, 2026

Ah another one

FAIL Turbopack test/e2e/middleware-base-path/test/index.test.ts (48.977 s)
  Middleware base tests
    ✓ should execute from absolute paths (1989 ms)
    ✓ router.query must exist when Link clicked page routing (1446 ms)
    ✕ should allow client-side navigation to the root (480 ms)

  ● Middleware base tests › should allow client-side navigation to the root

    expect(received).toMatch(expected)

    Expected substring: "Hello World"
    Received string:    "Hello"

      53 |       await browser.elementById('go-to-home').click()
      54 |       const title = await browser.waitForElementByCss('.title').text()
    > 55 |       expect(title).toMatch('Hello World')
         |                     ^
      56 |     } finally {
      57 |       await browser.close()
      58 |     }

      at Object.toMatch (e2e/middleware-base-path/test/index.test.ts:55:21)

@ijjk
Copy link
Member

ijjk commented Feb 27, 2026

@ijjk ijjk merged commit 38b69ff into canary Feb 27, 2026
191 of 194 checks passed
@ijjk ijjk deleted the mischnic/deploy-test-adapters-turbopack branch February 27, 2026 06:22
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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants