Skip to content

tests: Assert dpl query string in all tests for Turbopack#90592

Merged
mischnic merged 7 commits intocanaryfrom
mischnic/assert-dpl-in-tests
Feb 27, 2026
Merged

tests: Assert dpl query string in all tests for Turbopack#90592
mischnic merged 7 commits intocanaryfrom
mischnic/assert-dpl-in-tests

Conversation

@mischnic
Copy link
Member

@mischnic mischnic commented Feb 26, 2026

Enable skew protection for all start-mode tests when Turbopack is enabled (i.e. not dev). This works by setting NEXT_DEPLOYMENT_ID in the test infra

  • When running the tests, packages/next/src/server/lib/router-utils/resolve-routes.ts now validates that all static asset requests have the correct ?dpl=... query param value, and returns a 404 if missing.
  • It can be disabled with disableAutoSkewProtection: true in the test options
  • There were various tests that were asserting URLs and were missing the optional ?dpl at the end.
    • next.getDeploymentIdQuery() can be used to get the ?dpl=dpl_123912js string (or an empty string)
    • next.getAssetQuery() currently behaves like getDeploymentIdQuery, but will switch to prefer the immutable static token in Turbopack: experimental.immutableAssetToken #88607

Copy link
Member Author

mischnic commented Feb 26, 2026

@mischnic mischnic changed the title NextInstance.assetToken Assert dpl query string in all tests Feb 26, 2026
@mischnic mischnic force-pushed the mischnic/assert-dpl-in-tests branch from 7e6578a to 43188b9 Compare February 26, 2026 13:53
@mischnic mischnic marked this pull request as ready for review February 26, 2026 13:54
@mischnic mischnic force-pushed the mischnic/assert-dpl-in-tests branch from 43188b9 to 28735ed Compare February 26, 2026 14:09
@mischnic mischnic requested a review from a team February 26, 2026 14:12
@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) 439ms 440ms ▁█▁▂▂
Cold (First Request) 1.268s 1.278s ▁█▁▃▃
Warm (Listen) 456ms 456ms ▁█▁▂▁
Warm (Ready in log) 442ms 445ms ▁█▁▂▁
Warm (First Request) 348ms 352ms ▁█▁▃▁
📦 Dev Server (Webpack) (Legacy)

📦 Dev Server (Webpack)

Metric Canary PR Change Trend
Cold (Listen) 455ms 455ms ▁█▁▁█
Cold (Ready in log) 437ms 436ms ▅▇▅▁█
Cold (First Request) 1.886s 1.862s ▃▆▄▁█
Warm (Listen) 456ms 456ms ▁█▁▁█
Warm (Ready in log) 435ms 435ms ▄▆▃▁█
Warm (First Request) 1.849s 1.866s ▃▆▃▁█

⚡ Production Builds

Metric Canary PR Change Trend
Fresh Build 3.928s 3.972s ▁█▁▃▁
Cached Build 4.012s 3.862s ▁█▁▃▁
📦 Production Builds (Webpack) (Legacy)

📦 Production Builds (Webpack)

Metric Canary PR Change Trend
Fresh Build 13.980s 13.981s ▁▇▂▁█
Cached Build 14.111s 14.126s ▁▇▁▁█
node_modules Size 475 MB 475 MB ▁▁▁▁▁
📦 Bundle Sizes

Bundle Sizes

⚡ Turbopack

Client

Main Bundles: **400 kB** → **400 kB** ✅ -13 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 763 B
Total 764 B 763 B ✅ -1 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 451 B 452 B
Total 451 B 452 B ⚠️ +1 B

📦 Webpack

Client

Main Bundles
Canary PR Change
5528-HASH.js gzip 5.54 kB N/A -
6280-HASH.js gzip 58.3 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 256 B 254 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 kB -
Total 232 kB 233 kB ⚠️ +719 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 254 kB
Total 379 kB 379 kB ⚠️ +317 B
Middleware
Canary PR Change
middleware-b..fest.js gzip 615 B 615 B
middleware-r..fest.js gzip 156 B 155 B
middleware.js gzip 43.6 kB 43.8 kB
edge-runtime..pack.js gzip 842 B 842 B
Total 45.2 kB 45.5 kB ⚠️ +249 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.01 MB 4.02 MB 🔴 +4.11 kB (+0%)
index.pack gzip 102 kB 103 kB
index.pack.old gzip 102 kB 103 kB 🔴 +1.08 kB (+1%)
Total 4.22 MB 4.22 MB ⚠️ +5.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 169 kB 169 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 ✅ -3 B
📎 Tarball URL
next@https://vercel-packages.vercel.app/next/prs/90592/next

@mischnic mischnic changed the base branch from mischnic/less-dynamic-pages-manifest-path to graphite-base/90592 February 26, 2026 15:31
@mischnic mischnic force-pushed the mischnic/assert-dpl-in-tests branch from 28735ed to 92d7549 Compare February 26, 2026 15:32
@mischnic mischnic force-pushed the graphite-base/90592 branch from 2ccaa11 to 17033ca Compare February 26, 2026 15:32
@graphite-app graphite-app bot changed the base branch from graphite-base/90592 to canary February 26, 2026 15:32
@mischnic mischnic force-pushed the mischnic/assert-dpl-in-tests branch from 92d7549 to c121bcd Compare February 26, 2026 15:32
@mischnic mischnic changed the title Assert dpl query string in all tests tests: Assert dpl query string in all tests Feb 26, 2026
@mischnic mischnic force-pushed the mischnic/assert-dpl-in-tests branch from c121bcd to e2978e4 Compare February 26, 2026 15:49
@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Feb 26, 2026

Tests Passed

@mischnic mischnic changed the title tests: Assert dpl query string in all tests tests: Assert dpl query string in all tests for Turbopack Feb 26, 2026
@mischnic mischnic requested a review from a team February 26, 2026 16:22
@mischnic mischnic force-pushed the mischnic/assert-dpl-in-tests branch from 9519684 to 892fb71 Compare February 26, 2026 20:01
@mischnic mischnic merged commit 1c1550c into canary Feb 27, 2026
276 of 278 checks passed
@mischnic mischnic deleted the mischnic/assert-dpl-in-tests branch February 27, 2026 09:06
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 13, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants