Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update switchable runtime snapshot for Turbopack #63400

Merged

Conversation

timneutkens
Copy link
Member

@timneutkens timneutkens commented Mar 18, 2024

What?

Updates the test snapshot so that it passes for Turbopack.

Closes NEXT-2833

Copy link
Member Author

timneutkens commented Mar 18, 2024

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

Join @timneutkens and the rest of your teammates on Graphite Graphite

@ijjk
Copy link
Member

ijjk commented Mar 18, 2024

Failing test suites

Commit: 425994d

pnpm test test/integration/amphtml/test/index.test.js

  • AMP Usage > production mode > should have amp optimizer in trace
  • AMP Usage > production mode > With AMP context > should render the normal page that uses the AMP hook
  • AMP Usage > production mode > With AMP context > should render the AMP page that uses the AMP hook
  • AMP Usage > production mode > With AMP context > should render nested normal page with AMP hook
  • AMP Usage > production mode > With AMP context > should render nested AMP page with AMP hook
  • AMP Usage > production mode > With basic AMP usage > should render the page as valid AMP
  • AMP Usage > production mode > With basic AMP usage > should render the page without leaving render target
  • AMP Usage > production mode > With basic AMP usage > should not output client pages for AMP only
  • AMP Usage > production mode > With basic AMP usage > should not output client pages for AMP only with config exported after declaration
  • AMP Usage > production mode > With basic AMP usage > should drop custom scripts
  • AMP Usage > production mode > With basic AMP usage > should not drop custom amp scripts
  • AMP Usage > production mode > With basic AMP usage > should optimize clean
  • AMP Usage > production mode > With basic AMP usage > should auto import extensions
  • AMP Usage > production mode > With basic usage > should render the page
  • AMP Usage > production mode > canonical amphtml > should render link rel amphtml
  • AMP Usage > production mode > canonical amphtml > should render amphtml from provided rel link
  • AMP Usage > production mode > canonical amphtml > should render link rel amphtml with existing query
  • AMP Usage > production mode > canonical amphtml > should render the AMP page that uses the AMP hook
  • AMP Usage > production mode > canonical amphtml > should render a canonical regardless of amp-only status (explicit)
  • AMP Usage > production mode > canonical amphtml > should not render amphtml link tag with no AMP page
  • AMP Usage > production mode > canonical amphtml > should remove conflicting amp tags
  • AMP Usage > production mode > canonical amphtml > should allow manually setting canonical
  • AMP Usage > production mode > canonical amphtml > should allow manually setting amphtml rel
  • AMP Usage > production mode > combined styles > should combine style tags
  • AMP Usage > production mode > combined styles > should remove sourceMaps from styles
Expand output

● AMP Usage › production mode › should have amp optimizer in trace

ENOENT: no such file or directory, open '/root/actions-runner/_work/next.js/next.js/test/integration/amphtml/.next/next-server.js.nft.json'

  54 |     it('should have amp optimizer in trace', async () => {
  55 |       const trace = JSON.parse(
> 56 |         readFileSync(join(appDir, '.next/next-server.js.nft.json'), 'utf8')
     |                     ^
  57 |       )
  58 |       expect(
  59 |         trace.files.some((file) =>

  at Object.<anonymous> (integration/amphtml/test/index.test.js:56:21)

● AMP Usage › production mode › With basic usage › should render the page

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

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

● AMP Usage › production mode › With basic AMP usage › should render the page as valid AMP

FetchError: request to http://localhost:41987/?amp=1 failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

● AMP Usage › production mode › With basic AMP usage › should render the page without leaving render target

FetchError: request to http://localhost:41987/special-chars failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

● AMP Usage › production mode › With basic AMP usage › should not output client pages for AMP only

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

  274 |     opts?.beforePageLoad?.(page)
  275 |
> 276 |     await page.goto(url, { waitUntil: 'load' })
      |                ^
  277 |   }
  278 |
  279 |   back(options): BrowserInterface {

  at BrowserInterface.goto (lib/browsers/playwright.ts:276:16)
  at webdriver (lib/next-webdriver.ts:129:3)
  at Object.<anonymous> (integration/amphtml/test/index.test.js:94:25)

● AMP Usage › production mode › With basic AMP usage › should not output client pages for AMP only with config exported after declaration

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

  274 |     opts?.beforePageLoad?.(page)
  275 |
> 276 |     await page.goto(url, { waitUntil: 'load' })
      |                ^
  277 |   }
  278 |
  279 |   back(options): BrowserInterface {

  at BrowserInterface.goto (lib/browsers/playwright.ts:276:16)
  at webdriver (lib/next-webdriver.ts:129:3)
  at Object.<anonymous> (integration/amphtml/test/index.test.js:103:25)

● AMP Usage › production mode › With basic AMP usage › should drop custom scripts

FetchError: request to http://localhost:41987/custom-scripts failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

● AMP Usage › production mode › With basic AMP usage › should not drop custom amp scripts

FetchError: request to http://localhost:41987/amp-script?amp=1 failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

● AMP Usage › production mode › With basic AMP usage › should optimize clean

FetchError: request to http://localhost:41987/only-amp failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

● AMP Usage › production mode › With basic AMP usage › should auto import extensions

FetchError: request to http://localhost:41987/auto-import failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

● AMP Usage › production mode › With AMP context › should render the normal page that uses the AMP hook

FetchError: request to http://localhost:41987/use-amp-hook failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

● AMP Usage › production mode › With AMP context › should render the AMP page that uses the AMP hook

FetchError: request to http://localhost:41987/use-amp-hook?amp=1 failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

● AMP Usage › production mode › With AMP context › should render nested normal page with AMP hook

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

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

● AMP Usage › production mode › With AMP context › should render nested AMP page with AMP hook

FetchError: request to http://localhost:41987/nested?amp=1 failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

● AMP Usage › production mode › canonical amphtml › should render link rel amphtml

FetchError: request to http://localhost:41987/use-amp-hook failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

● AMP Usage › production mode › canonical amphtml › should render amphtml from provided rel link

FetchError: request to http://localhost:41987/use-amp-hook.amp failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

● AMP Usage › production mode › canonical amphtml › should render link rel amphtml with existing query

FetchError: request to http://localhost:41987/use-amp-hook?hello=1 failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

● AMP Usage › production mode › canonical amphtml › should render the AMP page that uses the AMP hook

FetchError: request to http://localhost:41987/use-amp-hook?amp=1 failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

● AMP Usage › production mode › canonical amphtml › should render a canonical regardless of amp-only status (explicit)

FetchError: request to http://localhost:41987/only-amp failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

● AMP Usage › production mode › canonical amphtml › should not render amphtml link tag with no AMP page

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

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

● AMP Usage › production mode › canonical amphtml › should remove conflicting amp tags

FetchError: request to http://localhost:41987/conflicting-tag?amp=1 failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

● AMP Usage › production mode › canonical amphtml › should allow manually setting canonical

FetchError: request to http://localhost:41987/manual-rels?amp=1 failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

● AMP Usage › production mode › canonical amphtml › should allow manually setting amphtml rel

FetchError: request to http://localhost:41987/manual-rels failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

● AMP Usage › production mode › combined styles › should combine style tags

FetchError: request to http://localhost:41987/styled?amp=1 failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

● AMP Usage › production mode › combined styles › should remove sourceMaps from styles

FetchError: request to http://localhost:41987/styled?amp=1 failed, reason: connect ECONNREFUSED 127.0.0.1:41987

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

Read more about building and testing Next.js in contributing.md.

@ijjk
Copy link
Member

ijjk commented Mar 18, 2024

Stats from current PR

Default Build (Increase detected ⚠️)
General
vercel/next.js canary vercel/next.js 03-18-Update_switchable_runtime_snapshot_for_Turbopack Change
buildDuration 15.2s 15.3s N/A
buildDurationCached 8.3s 6.9s N/A
nodeModulesSize 198 MB 198 MB
nextStartRea..uration (ms) 451ms 459ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js 03-18-Update_switchable_runtime_snapshot_for_Turbopack Change
2453-HASH.js gzip 30.5 kB 30.5 kB N/A
3304.HASH.js gzip 181 B 181 B
3f784ff6-HASH.js gzip 53.7 kB 53.7 kB N/A
8299-HASH.js gzip 5.04 kB 5.04 kB N/A
framework-HASH.js gzip 45.2 kB 45.2 kB
main-app-HASH.js gzip 242 B 241 B N/A
main-HASH.js gzip 32.2 kB 32.2 kB N/A
webpack-HASH.js gzip 1.68 kB 1.68 kB N/A
Overall change 45.4 kB 45.4 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js 03-18-Update_switchable_runtime_snapshot_for_Turbopack Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary vercel/next.js 03-18-Update_switchable_runtime_snapshot_for_Turbopack Change
_app-HASH.js gzip 196 B 197 B N/A
_error-HASH.js gzip 184 B 184 B
amp-HASH.js gzip 505 B 505 B
css-HASH.js gzip 324 B 325 B N/A
dynamic-HASH.js gzip 2.5 kB 2.5 kB N/A
edge-ssr-HASH.js gzip 258 B 258 B
head-HASH.js gzip 352 B 352 B
hooks-HASH.js gzip 370 B 371 B N/A
image-HASH.js gzip 4.21 kB 4.21 kB
index-HASH.js gzip 259 B 259 B
link-HASH.js gzip 2.67 kB 2.67 kB N/A
routerDirect..HASH.js gzip 314 B 312 B N/A
script-HASH.js gzip 386 B 386 B
withRouter-HASH.js gzip 309 B 309 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 6.57 kB 6.57 kB
Client Build Manifests
vercel/next.js canary vercel/next.js 03-18-Update_switchable_runtime_snapshot_for_Turbopack Change
_buildManifest.js gzip 481 B 484 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js 03-18-Update_switchable_runtime_snapshot_for_Turbopack Change
index.html gzip 529 B 528 B N/A
link.html gzip 540 B 541 B N/A
withRouter.html gzip 523 B 523 B
Overall change 523 B 523 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js 03-18-Update_switchable_runtime_snapshot_for_Turbopack Change
edge-ssr.js gzip 95.1 kB 95.1 kB N/A
page.js gzip 3.04 kB 3.04 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js 03-18-Update_switchable_runtime_snapshot_for_Turbopack Change
middleware-b..fest.js gzip 624 B 624 B
middleware-r..fest.js gzip 151 B 151 B
middleware.js gzip 25.5 kB 25.5 kB N/A
edge-runtime..pack.js gzip 839 B 839 B
Overall change 1.61 kB 1.61 kB
Next Runtimes
vercel/next.js canary vercel/next.js 03-18-Update_switchable_runtime_snapshot_for_Turbopack Change
app-page-exp...dev.js gzip 171 kB 171 kB
app-page-exp..prod.js gzip 96.6 kB 96.6 kB
app-page-tur..prod.js gzip 98.3 kB 98.3 kB
app-page-tur..prod.js gzip 92.8 kB 92.8 kB
app-page.run...dev.js gzip 149 kB 149 kB
app-page.run..prod.js gzip 91.3 kB 91.3 kB
app-route-ex...dev.js gzip 21.3 kB 21.3 kB
app-route-ex..prod.js gzip 15 kB 15 kB
app-route-tu..prod.js gzip 15 kB 15 kB
app-route-tu..prod.js gzip 14.8 kB 14.8 kB
app-route.ru...dev.js gzip 21 kB 21 kB
app-route.ru..prod.js gzip 14.8 kB 14.8 kB
pages-api-tu..prod.js gzip 9.52 kB 9.52 kB
pages-api.ru...dev.js gzip 9.8 kB 9.8 kB
pages-api.ru..prod.js gzip 9.52 kB 9.52 kB
pages-turbo...prod.js gzip 22.3 kB 22.3 kB
pages.runtim...dev.js gzip 22.9 kB 22.9 kB
pages.runtim..prod.js gzip 22.3 kB 22.3 kB
server.runti..prod.js gzip 50.6 kB 50.6 kB
Overall change 948 kB 948 kB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js 03-18-Update_switchable_runtime_snapshot_for_Turbopack Change
0.pack gzip 1.56 MB 1.55 MB N/A
index.pack gzip 106 kB 106 kB ⚠️ +236 B
Overall change 106 kB 106 kB ⚠️ +236 B
Diff details
Diff for middleware.js

Diff too large to display

Commit: a37c61c

@@ -179,40 +179,6 @@ describe('Switchable runtime', () => {
response = await fetchViaHTTP(context.appPort, '/api/edge')
text = await response.text()
expect(text).toMatch(/Returned by Edge API Route .+\/api\/edge/)

Copy link
Member

Choose a reason for hiding this comment

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

most of the nodejs/edge routes tests are also covered in other app-dir tests already, this is a pretty legacy test that can be deleted 👍

@timneutkens timneutkens merged commit a35a890 into canary Mar 18, 2024
57 of 64 checks passed
@timneutkens timneutkens deleted the 03-18-Update_switchable_runtime_snapshot_for_Turbopack branch March 18, 2024 10:03
@github-actions github-actions bot added the locked label Apr 1, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Apr 1, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
created-by: Next.js team PRs by the Next.js team. locked
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants