Repository navigation
Description
Port these E2E test applications to span streaming (18 apps).
Apps
- effect-3-node
- effect-4-node
- elysia-node
- hono-4
- node-express
- node-express-esm-loader
- node-express-esm-without-loader
- node-express-mcp-v2
- node-express-send-to-sentry
- node-express-v5
- node-fastify-3
- node-fastify-4
- node-fastify-5
- node-firebase
- node-hapi
- node-koa
- node-profiling-electron
- tsx-express
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.
This group is the most affected by the low-cardinality span name work: http.server, http.client, router, request handler, db and messaging span names all change under streaming. Expect to rewrite name assertions, not just swap the helper.
Reference app: nextjs-16-streaming. Worked example: #23797.
Keep static trace lifecycle coverage
Before porting this group, duplicate node-express as-is into node-express-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-3484
test(e2e): Migrate Fastify to span streaming (#24159)
test(e2e): Migrate Effect to span streaming (#24161)
test(e2e): Migrate Firebase and Electron fixtures to span streaming (#…
test(e2e): Preserve static Express coverage (#24155)
test(e2e): Migrate Elysia to span streaming (#24162)
test(e2e): Migrate Hono to span streaming (#24163)
test(e2e): Update live ingestion verification for span streaming (#24165
test(e2e): Migrate Koa and Hapi to span streaming (#24160)
test(e2e): Migrate Express ESM variants to span streaming (#24158)
test(e2e): Migrate Express 4 and TSX to span streaming (#24156)
test(e2e): Migrate Express 5 and MCP to span streaming (#24157)