Uh oh!
There was an error while loading. Please reload this page.
test(e2e): Port React Router framework E2E apps to span streaming - #23844
Conversation
size-limit report 📦
|
Uh oh!
There was an error while loading. Please reload this page.
75dab6a to
ae51708Compare7d5db09 to
d50ce36Compare47e95de to
5ecb95aCompareUh oh!
There was an error while loading. Please reload this page.
d50ce36 to
b03837aCompareadf8c96 to
e2c7572Compareb03837a to
d33d48cComparee2c7572 to
05a6dbdCompare8870eb6 to
2ed771fCompare05a6dbd to
4736942Compare2ed771f to
7e3b354Compare4736942 to
7700c10CompareThere was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 7700c10. Configure here.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
7e3b354 to
638598aCompare7700c10 to
06f7731Compare638598a to
5b28e50Compare06f7731 to
bd73839Compare
JPeer264
left a comment
There was a problem hiding this comment.
LGTM. Biggest PR I've reviewed in a long time.
There was a problem hiding this comment.
note: Odd that these files weren't triggered as "rename" - I think then the PR would have been smaller
There was a problem hiding this comment.
Oof sorry, I think something went wrong when I broke up my stacked PR :(
Removes the `traceLifecycle: 'static'` pin from `react-router-7-framework`, `react-router-8-framework` and `react-router-7-framework-spa`, and rewrites their specs against streamed span v2. Envelope-level metadata has no span equivalent, so the SDK assertions read the `sentry.sdk.*` and `sentry.environment` attributes instead, and the `runtime` tag assertions are dropped. The trace connection spec is keyed off the `sentry-trace` meta tag. Spans are buffered before they flush, so an earlier page load on `/` can still be arriving here, and matching the two halves independently paired spans from different loads. The document advertises its own trace, and the client span is selected by the parent it continues, so a pageload that failed to continue the trace still fails the test rather than passing vacuously.
…streaming (#23845) ## What Ports `react-router-7-framework-instrumentation` to span streaming. ## Why Span streaming is the default now, so the E2E suite has to exercise it. Loader, action, middleware and fetcher assertions walk the streamed trace instead of a transaction's `spans` array, and the orchestrion mysql spec matches on `db.query.text`, since a streamed mysql span is named after its query summary. Part of #23798
0424336 to
be21d07CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
#23844 ported this app to span streaming while this branch was open, so its ioredis assertions still expected the serialized command as the span name. The route builds its client without a host or port, so the name reports ioredis' own `localhost:6379` defaults, which the expectations now pin as `server.address`/`server.port` too. The duplicate-span check keys off `db.query.text`, which still tells the two commands apart. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

What
Ports
react-router-7-framework,react-router-8-frameworkandreact-router-7-framework-spato span streaming.Why
Span streaming is the default now, so the E2E suite has to exercise it. Envelope-level metadata has no span equivalent, so the SDK assertions read the
sentry.sdk.*andsentry.environmentattributes instead and theruntimetag assertions are dropped. The trace-connection spec matches the server segment on its op rather than its name, because an unparameterized streamed server span is named after the method alone.Part of #23798