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

[test] More accurate stack assertions in terminal #75355

Draft
wants to merge 1 commit into
base: canary
Choose a base branch
from

Conversation

eps1lon
Copy link
Member

@eps1lon eps1lon commented Jan 27, 2025

Failing test highlighting breakage in #75294

@ijjk ijjk added created-by: Next.js team PRs by the Next.js team. tests labels Jan 27, 2025
Copy link
Member Author

eps1lon commented Jan 27, 2025

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

@ijjk
Copy link
Member

ijjk commented Jan 27, 2025

Stats from current PR

Default Build (Increase detected ⚠️)
General
vercel/next.js canary vercel/next.js sebbie/01-27-_test_more_accurate_stack_assertion_react-compiler.test Change
buildDuration 17.3s 14.3s N/A
buildDurationCached 13.5s 11.2s N/A
nodeModulesSize 392 MB 392 MB
nextStartRea..uration (ms) 417ms 424ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js sebbie/01-27-_test_more_accurate_stack_assertion_react-compiler.test Change
5306-HASH.js gzip 54.1 kB 54.1 kB N/A
8276.HASH.js gzip 169 B 168 B N/A
8377-HASH.js gzip 5.46 kB 5.46 kB N/A
bccd1874-HASH.js gzip 52.9 kB 52.9 kB N/A
framework-HASH.js gzip 57.5 kB 57.5 kB N/A
main-app-HASH.js gzip 240 B 242 B N/A
main-HASH.js gzip 34.6 kB 34.6 kB N/A
webpack-HASH.js gzip 1.71 kB 1.71 kB N/A
Overall change 0 B 0 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js sebbie/01-27-_test_more_accurate_stack_assertion_react-compiler.test Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Overall change 39.4 kB 39.4 kB
Client Pages
vercel/next.js canary vercel/next.js sebbie/01-27-_test_more_accurate_stack_assertion_react-compiler.test Change
_app-HASH.js gzip 193 B 193 B
_error-HASH.js gzip 193 B 193 B
amp-HASH.js gzip 512 B 510 B N/A
css-HASH.js gzip 343 B 342 B N/A
dynamic-HASH.js gzip 1.84 kB 1.84 kB
edge-ssr-HASH.js gzip 265 B 265 B
head-HASH.js gzip 363 B 362 B N/A
hooks-HASH.js gzip 393 B 392 B N/A
image-HASH.js gzip 4.59 kB 4.58 kB N/A
index-HASH.js gzip 268 B 268 B
link-HASH.js gzip 2.35 kB 2.35 kB N/A
routerDirect..HASH.js gzip 328 B 328 B
script-HASH.js gzip 397 B 397 B
withRouter-HASH.js gzip 323 B 326 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 3.59 kB 3.59 kB
Client Build Manifests
vercel/next.js canary vercel/next.js sebbie/01-27-_test_more_accurate_stack_assertion_react-compiler.test Change
_buildManifest.js gzip 748 B 747 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js sebbie/01-27-_test_more_accurate_stack_assertion_react-compiler.test Change
index.html gzip 523 B 523 B
link.html gzip 538 B 538 B
withRouter.html gzip 520 B 519 B N/A
Overall change 1.06 kB 1.06 kB
Edge SSR bundle Size
vercel/next.js canary vercel/next.js sebbie/01-27-_test_more_accurate_stack_assertion_react-compiler.test Change
edge-ssr.js gzip 129 kB 129 kB N/A
page.js gzip 210 kB 210 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js sebbie/01-27-_test_more_accurate_stack_assertion_react-compiler.test Change
middleware-b..fest.js gzip 670 B 665 B N/A
middleware-r..fest.js gzip 155 B 156 B N/A
middleware.js gzip 31.3 kB 31.3 kB N/A
edge-runtime..pack.js gzip 844 B 844 B
Overall change 844 B 844 B
Next Runtimes
vercel/next.js canary vercel/next.js sebbie/01-27-_test_more_accurate_stack_assertion_react-compiler.test Change
app-page-exp...dev.js gzip 385 kB 385 kB
app-page-exp..prod.js gzip 131 kB 131 kB
app-page-tur..prod.js gzip 144 kB 144 kB
app-page-tur..prod.js gzip 140 kB 140 kB
app-page.run...dev.js gzip 372 kB 372 kB N/A
app-page.run..prod.js gzip 128 kB 128 kB
app-route-ex...dev.js gzip 39.4 kB 39.4 kB
app-route-ex..prod.js gzip 25 kB 25 kB
app-route-tu..prod.js gzip 25 kB 25 kB
app-route-tu..prod.js gzip 24.8 kB 24.8 kB
app-route.ru...dev.js gzip 41 kB 41 kB
app-route.ru..prod.js gzip 24.8 kB 24.8 kB
dist_client_...dev.js gzip 326 B 326 B
dist_client_...dev.js gzip 318 B 318 B
pages-api-tu..prod.js gzip 8.81 kB 8.81 kB
pages-api.ru...dev.js gzip 11.5 kB 11.5 kB
pages-api.ru..prod.js gzip 8.8 kB 8.8 kB
pages-turbo...prod.js gzip 21.6 kB 21.6 kB
pages.runtim...dev.js gzip 31.3 kB 31.3 kB N/A
pages.runtim..prod.js gzip 21.6 kB 21.6 kB
server.runti..prod.js gzip 73.7 kB 73.7 kB
Overall change 1.25 MB 1.25 MB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js sebbie/01-27-_test_more_accurate_stack_assertion_react-compiler.test Change
0.pack gzip 2.1 MB 2.1 MB ⚠️ +1.55 kB
index.pack gzip 75.4 kB 74.9 kB N/A
Overall change 2.1 MB 2.1 MB ⚠️ +1.55 kB
Diff details
Diff for main-HASH.js

Diff too large to display

Diff for app-page-exp..ntime.dev.js
failed to diff
Diff for app-page.runtime.dev.js
failed to diff
Diff for pages.runtime.dev.js

Diff too large to display

Commit: acc2b92

@eps1lon eps1lon changed the title [test] More accurate stack assertion react-compiler.test [test] More accurate stack assertions in terminal Jan 27, 2025
@eps1lon eps1lon force-pushed the sebbie/01-27-_test_more_accurate_stack_assertion_react-compiler.test branch from 998e9f3 to 3fe7ffe Compare January 27, 2025 14:11
@eps1lon eps1lon force-pushed the sebbie/01-27-_test_more_accurate_stack_assertion_react-compiler.test branch from 3fe7ffe to acc2b92 Compare January 27, 2025 14:12
'\n at Root [Server] (<anonymous>)'
'\n at Root [Server] (<anonymous>)' +
// Just need some string to assert that this is the whole stack
'\n GET /no-accessed-data 200'
Copy link
Member Author

Choose a reason for hiding this comment

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

Now lists more internals frames now that ignoreList is no longer filled in next-server bundles.

@ijjk
Copy link
Member

ijjk commented Jan 27, 2025

Failing test suites

Commit: acc2b92

pnpm test-dev-turbo test/development/app-dir/dynamic-io-dev-errors/dynamic-io-dev-errors.test.ts (turbopack)

  • Dynamic IO Dev Errors > should display error when component accessed data without suspense boundary
Expand output

● Dynamic IO Dev Errors › should display error when component accessed data without suspense boundary

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

Expected substring: "
Error: Route \"/no-accessed-data\": A component accessed data, headers, params, searchParams, or a short-lived cache without a Suspense boundary nor a \"use cache\" above it. We don't have the exact line number added to error messages yet but you can see which component in the stack below. See more info: https://nextjs.org/docs/messages/next-prerender-missing-suspense
    at Page [Server] (<anonymous>)
    at main (<anonymous>)
    at body (<anonymous>)
    at html (<anonymous>)
    at Root [Server] (<anonymous>)
 GET /no-accessed-data 200"
Received string:    " ✓ Compiled /no-accessed-data in 480ms
Error: Route \"/no-accessed-data\": A component accessed data, headers, params, searchParams, or a short-lived cache without a Suspense boundary nor a \"use cache\" above it. We don't have the exact line number added to error messages yet but you can see which component in the stack below. See more info: https://nextjs.org/docs/messages/next-prerender-missing-suspense
    at Page [Server] (<anonymous>)
    at main (<anonymous>)
    at body (<anonymous>)
    at html (<anonymous>)
    at Root [Server] (<anonymous>)

  at RedirectErrorBoundary (../webpack:/next/dist/src/client/components/redirect-boundary.tsx:43:4)
  at RedirectBoundary (../webpack:/next/dist/src/client/components/redirect-boundary.tsx:74:35)
  at ReactDevOverlay (../webpack:/next/dist/src/client/components/react-dev-overlay/app/old-react-dev-overlay.tsx:42:15)
  at HotReload (../webpack:/next/dist/src/client/components/react-dev-overlay/app/hot-reloader-client.tsx:540:2)
  at Router (../webpack:/next/dist/src/client/components/app-router.tsx:244:2)
  at ErrorBoundaryHandler (../webpack:/next/dist/src/client/components/error-boundary.tsx:69:4)
  at ErrorBoundary (../webpack:/next/dist/src/client/components/error-boundary.tsx:185:2)
  at AppRouter (../webpack:/next/dist/src/client/components/app-router.tsx:663:2)
  at ServerInsertedHTMLProvider (../webpack:/next/dist/src/server/app-render/server-inserted-html.tsx:14:33)
  at app_render_App (../webpack:/next/dist/src/server/app-render/app-render.tsx:1017:2)
    41 | > {
    42 |   constructor(props: RedirectBoundaryProps) {
  > 43 |     super(props)
       |    ^
    44 |     this.state = { redirect: null, redirectType: null }
    45 |   }
    46 |
   GET /no-accessed-data 200 in 857ms
  "
  at Object.toContain (development/app-dir/dynamic-io-dev-errors/dynamic-io-dev-errors.test.ts:68:58)

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

__NEXT_EXPERIMENTAL_PPR=true pnpm test-dev test/development/app-dir/error-overlay/async-client-component/async-client-component.test.ts (PPR)

  • app-dir - async-client-component > app router client component async module
Expand output

● app-dir - async-client-component › app router client component async module

No Redbox to open.

  23 |     const browser = await next.browser('/client')
  24 |
> 25 |     await openRedbox(browser)
     |     ^
  26 |
  27 |     const description = await getRedboxDescription(browser)
  28 |     const componentStack = await getStackFramesContent(browser)

  at Object.<anonymous> (development/app-dir/error-overlay/async-client-component/async-client-component.test.ts:25:5)

Cause:
elementHandle.click: Element is not attached to the DOM
Call log:
  - attempting click action
  -   waiting for element to be visible, enabled and stable

  394 |   click() {
  395 |     return this.chain((el: ElementHandleExt) => {
> 396 |       return el.click().then(() => el)
      |                 ^
  397 |     })
  398 |   }
  399 |

  at click (lib/browsers/playwright.ts:396:17)
  at openRedbox (lib/next-test-utils.ts:913:7)
  at Object.<anonymous> (development/app-dir/error-overlay/async-client-component/async-client-component.test.ts:25:5)
  at Proxy.chain (lib/browsers/base.ts:17:23)
  at Proxy.chain (lib/browsers/playwright.ts:395:17)
  at click (lib/next-test-utils.ts:913:63)
  at Object.<anonymous> (development/app-dir/error-overlay/async-client-component/async-client-component.test.ts:25:5)

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
created-by: Next.js team PRs by the Next.js team. tests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants