Description
Port these E2E test applications to span streaming (13 apps).
Apps
- nestjs-8
- nestjs-11
- nestjs-12
- nestjs-basic
- nestjs-basic-with-graphql
- nestjs-bullmq
- nestjs-distributed-tracing
- nestjs-fastify
- nestjs-graphql
- nestjs-microservices
- nestjs-websockets
- nestjs-with-submodules
- nestjs-with-submodules-decorator
What to do
For each app:
- Remove the
traceLifecycle: 'static'pin added in test(e2e): Disable span streaming in e2e test applications #22590 from everySentry.init(client, server, edge). - Rewrite the specs from transaction envelopes to span v2:
waitForTransactionbecomeswaitForStreamedSpan/waitForStreamedSpansevent.transactionbecomesspan.namecontexts.trace.opbecomesgetSpanOp(span)plusspan.is_segmentcontexts.trace.data['x']becomesspan.attributes['x'], which has the shape{ value, type }transaction_info.sourcebecomes thesentry.segment.name.sourceattribute
- Streamed child spans arrive across several envelopes, so use
collectStreamedSpanswherever a test asserts on children of a segment span.
Most of these specs assert on child spans (span decorator, cron decorator, graphql, bullmq), so collectStreamedSpans is the main tool here. Also watch the low-cardinality names for http.server, graphql and messaging spans.
Reference app: nextjs-16-streaming. Worked example: #23797.
Keep static trace lifecycle coverage
Before porting this group, duplicate nestjs-11 as-is into nestjs-11-static and leave that copy on the current transaction-based specs. That keeps the static trace lifecycle covered once the rest of the group moves to streaming.
The copy is verbatim; only the app name changes:
package.json->namestart-event-proxy.mjs->proxyServerName- every
waitForTransaction/waitForError/waitForSessioncall intests/
Keep traceLifecycle: 'static' in the copy's Sentry.init calls. The e2e matrix discovers apps by directory, so no CI config change is needed.
The representative is a suggestion: swap it if another app in the list exercises more of this SDK's instrumentation.
Activity
linear-code commentedon Sep 1, 2026
JS-3485
test(e2e): Add `nestjs-11-static` E2E app (#24095)
test(e2e): Port the nestjs-11 E2E app to span streaming (#24096)
test(e2e): Port the nestjs-graphql E2E app to span streaming (#24101)
test(e2e): Use the existing streamed-span helpers in the nestjs-11 sp…
test(e2e): Port the nestjs-websockets E2E app to span streaming (#24103)
test(e2e): Port the nestjs-fastify E2E app to span streaming (#24100)
test(e2e): Port the nestjs-with-submodules-decorator E2E app to span …
test(e2e): Port the nestjs-basic-with-graphql E2E app to span streami…
test(e2e): Port the nestjs-8 E2E app to span streaming (#24097)
test(e2e): Port the nestjs-microservices E2E app to span streaming (#…
test(e2e): Port the nestjs-bullmq E2E app to span streaming (#24107)
test(e2e): Port the nestjs-basic E2E app to span streaming (#24099)
test(e2e): Port the nestjs-12 E2E app to span streaming (#24098)
test(e2e): Tell the two nestjs-basic interceptor specs traces apart (#…
test(e2e): Port the nestjs-distributed-tracing E2E app to span stream…
test(e2e): Port the nestjs-with-submodules E2E app to span streaming (#…