Skip to content

test(nextjs): Add vinext e2e tests - #25001

Open
JPeer264 wants to merge 3 commits into
developfrom
jp/vinext-e2e-tests
Open

JPeer264 wants to merge 3 commits into
developfrom
jp/vinext-e2e-tests

Conversation

@JPeer264

@JPeer264 JPeer264 commented Oct 2, 2026 •

Copy link
Copy Markdown
Member

part of #19514
part of JS-1803

This adds e2e tests for vinext. nextjs-16 gets the optional variants nextjs-16 (vinext) and nextjs-16 (vinext, bun), which build the same app with vinext and run the same suite. The new app vinext-cf-workers covers vinext on Workers through the Vite plugin of @sentry/cloudflare.

Known issues

  • No openai and ioredis spans: vinext does not run the build-time loader of webpack or Turbopack.
  • No component annotation and no third-party filter: vinext runs no Sentry build plugin.
  • No fetch spans on Bun: vinext keeps the fetch from before Sentry.init.
  • No Deno variant: on Deno, the node:http server of vinext leaks the AsyncLocalStorage store between requests, also without Sentry.

@github-actions

github-actions Bot commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

size-limit report 📦

⚠️ Warning: Base artifact is not the latest one, because the latest workflow run is not done yet. This may lead to incorrect results. Try to re-run all tests to get up to date results.

Path Size % Change Change
@sentry/browser 29.8 kB - -
@sentry/browser - with treeshaking flags 27.92 kB - -
@sentry/browser - with treeshaking flags tracing without tracing 27.84 kB - -
@sentry/browser (incl. Tracing) 51.85 kB - -
@sentry/browser (incl. Tracing + Span Streaming) 51.87 kB - -
@sentry/browser (incl. Tracing, Profiling) 54.8 kB - -
@sentry/browser (incl. Tracing, Replay) 91.58 kB - -
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 80.45 kB - -
@sentry/browser (incl. Tracing, Replay with Canvas) 96.29 kB - -
@sentry/browser (incl. Tracing, Replay, Feedback) 109.27 kB - -
@sentry/browser (incl. Feedback) 47.32 kB - -
@sentry/browser (incl. sendFeedback) 34.84 kB - -
@sentry/browser (incl. FeedbackAsync) 39.95 kB - -
@sentry/browser (incl. Metrics) 30.82 kB - -
@sentry/browser (incl. Logs) 31.11 kB - -
@sentry/browser (incl. Metrics & Logs) 31.75 kB - -
@sentry/react 31.63 kB - -
@sentry/react (incl. Tracing) 54.17 kB - -
@sentry/vue 37.84 kB - -
@sentry/vue (incl. Tracing) 54.78 kB - -
@sentry/svelte 29.83 kB - -
@sentry/remix (Remix 3 client bundle) 56.83 kB - -
CDN Bundle 31.53 kB - -
CDN Bundle (incl. Tracing) 52.34 kB - -
CDN Bundle (incl. Logs, Metrics) 33.72 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) 54.3 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) 74.65 kB - -
CDN Bundle (incl. Tracing, Replay) 90.01 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) 91.96 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) 96.17 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) 98.15 kB - -
CDN Bundle - uncompressed 92.92 kB - -
CDN Bundle (incl. Tracing) - uncompressed 155.46 kB - -
CDN Bundle (incl. Logs, Metrics) - uncompressed 99.46 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed 161.41 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed 229.5 kB - -
CDN Bundle (incl. Tracing, Replay) - uncompressed 275.63 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed 281.57 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 289.33 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed 295.26 kB - -
@sentry/nextjs (client) 56.53 kB - -
@sentry/sveltekit (client) 52.23 kB - -
@sentry/core/server 40.86 kB +0.01% +1 B 🔺
@sentry/core/browser 13.71 kB - -
@sentry/node 145.89 kB +0.01% +7 B 🔺
@sentry/node/import (ESM hook with diagnostics-channel injection) 83.33 kB - -
@sentry/node - without tracing 93.69 kB +0.01% +8 B 🔺
@sentry/node - without channel injection 124.04 kB +0.01% +12 B 🔺
@sentry/aws-serverless 101.91 kB +0.01% +5 B 🔺
@sentry/cloudflare (withSentry) - minified 209.71 kB -0.01% -3 B 🔽
@sentry/cloudflare (withSentry) 519.94 kB -0.01% -3 B 🔽
@sentry/nextjs/cloudflare (withSentry) - minified 227.38 kB added added

View base workflow run

@JPeer264
JPeer264 force-pushed the jp/vinext-e2e-tests branch from d2c8ab0 to cd09798 Compare October 2, 2026 18:33
@JPeer264
JPeer264 force-pushed the jp/vinext-e2e-tests branch 2 times, most recently from e4ac7e8 to a2528b7 Compare October 3, 2026 16:14
@JPeer264
JPeer264 added this pull request to stack #25035 October 5, 2026 08:43
@JPeer264
JPeer264 force-pushed the jp/vinext-e2e-tests branch from a2528b7 to 9af8da5 Compare October 5, 2026 09:13
@JPeer264
JPeer264 force-pushed the jp/vinext-e2e-tests branch from 9af8da5 to 4d33f68 Compare October 5, 2026 11:15
@JPeer264
JPeer264 force-pushed the jp/vinext-e2e-tests branch 2 times, most recently from 84f9919 to fd788b5 Compare October 6, 2026 07:27
@JPeer264
JPeer264 force-pushed the jp/vinext-e2e-tests branch from fd788b5 to 943dd4a Compare October 6, 2026 09:28
@JPeer264
JPeer264 force-pushed the jp/vinext-e2e-tests branch from 943dd4a to c2e7c67 Compare October 6, 2026 12:57
@JPeer264
JPeer264 force-pushed the jp/vinext-e2e-tests branch 3 times, most recently from cdd5443 to 3419f77 Compare October 6, 2026 15:31
@linear-code

linear-code Bot commented Oct 7, 2026

Copy link
Copy Markdown

JS-1803

@JPeer264 JPeer264 self-assigned this Oct 7, 2026
@JPeer264
JPeer264 marked this pull request as ready for review October 7, 2026 14:49
@JPeer264
JPeer264 marked this pull request as draft October 7, 2026 14:50
@JPeer264
JPeer264 force-pushed the jp/vinext-e2e-tests branch from 3419f77 to 785f56b Compare October 7, 2026 16:00
@JPeer264
JPeer264 force-pushed the jp/vinext-e2e-tests branch from 785f56b to c12fa59 Compare October 7, 2026 16:04
@JPeer264
JPeer264 marked this pull request as ready for review October 7, 2026 16:04
@JPeer264
JPeer264 requested review from chargome and logaretm October 7, 2026 16:04
@JPeer264
JPeer264 force-pushed the jp/vinext-e2e-tests branch 2 times, most recently from 7971d8a to b36a03f Compare October 8, 2026 08:01
@JPeer264
JPeer264 force-pushed the jp/vinext-e2e-tests branch from b36a03f to 09df1d7 Compare October 8, 2026 08:46
@JPeer264
JPeer264 requested a review from nicohrubec October 8, 2026 11:16
Base automatically changed from jp/cloudflare-vite-vinext-nextjs-entry to develop October 8, 2026 11:28
@JPeer264
JPeer264 requested review from a team as code owners October 8, 2026 11:28
@JPeer264
JPeer264 requested review from andreiborza and mydea and removed request for a team October 8, 2026 11:28
JPeer264 and others added 3 commits October 8, 2026 13:28
vinext builds a Next.js app with Vite. Its e2e tests run in two places:

- nextjs-16 gets the optional variants `nextjs-16 (vinext)` and
  `nextjs-16 (vinext, bun)`. vinext builds the same app, and the same tests
  run as for Next.js. They skip the checks of the Next.js build output, and
  what vinext can not do yet: `openai` and `ioredis` get their diagnostics
  channels from the build-time loader of webpack or Turbopack, which vinext
  does not run, and without a Sentry build plugin there is no component
  annotation and no module metadata for the third-party filter. The OpenNext
  wrangler config is now `wrangler.opennext.jsonc`, because vinext refuses to
  build without the Cloudflare plugin when the project root has a wrangler
  config. The vinext build keeps `@opennextjs/cloudflare` external, because
  the D1 route of the OpenNext variants imports it, and its `import()` of a
  computed specifier can not be bundled.
- `vinext-cf-workers` covers vinext on Workers. Its Worker entry has no
  Sentry calls, so `sentryCloudflareVitePlugin` must wrap it with
  `withSentry` from `@sentry/nextjs/cloudflare`. The app also has the server
  config of a Next.js app, whose `init` must create no second client in the
  Worker. The tests check that each request has one `http.server` span with
  the route of Next.js and the Next.js spans in its segment, that an incoming
  trace is continued in that segment, and that an error from
  `onRequestError` is in the trace of the request.

There is no Deno variant. On Deno, the `node:http` server of vinext starts
each request after the first one in the AsyncLocalStorage store of an
earlier request, also without Sentry, so vinext creates no request span.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@JPeer264
JPeer264 force-pushed the jp/vinext-e2e-tests branch from 8ead2fc to 9ef6e7e Compare October 8, 2026 11:28

This branch has not been deployed

No deployments
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