Repository navigation
Closed
7 / 77 of 7 issues completedLabels
Description
Port dev-packages/node-integration-tests to span streaming. Span streaming is the default, so every suite that still pins traceLifecycle: 'static' covers behaviour we no longer ship.
Part of SDK-1425, one tracking issue per integration test package.
Scope
- 299
traceLifecycle: 'static'pins across 188 suite directories - 111 suite directories assert on transaction envelopes and need a real rewrite
- 19 suites already have a
-streamedtwin next to the static original - 20 suites use the env-gated
traceLifecycle: process.env.STREAMED === 'true' ? 'stream' : 'static'pattern
How to port a suite
- Remove the
traceLifecycle: 'static'pin from everySentry.initin the suite. - If a
-streamedtwin exists, fold it back: delete the static original and rename the twin to the base name. Do not keep both, or the coverage doubles and the two copies drift. - If the suite uses the env-gated
STREAMEDswitch, drop the switch and keep'stream'. - Rewrite the assertions from transaction envelopes to span v2:
.expect({ transaction })becomes.expect({ span }), which gives aSerializedStreamedSpanContainerevent.transactionbecomesspan.namecontexts.trace.opbecomes thesentry.opattribute 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 collect across envelopes wherever a test asserts on children of a segment span.
Watch for span names that become low cardinality under streaming: http.server, http.client, db, cache, gen_ai and graphql. Those assertions change, not just the helper.
Reference suite: suites/tracing/httpIntegration-streamed.
Keep static trace lifecycle coverage
Do not add a -static copy per suite. tracing/sampling-static and public-api/beforeSendSpan-static already guard the static lifecycle for this package.
Activity
linear-code commentedon Sep 7, 2026
JS-3600