Port node-integration-tests to span streaming
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Refactor
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- node.js, typescript
- Domain
- testing-qa
Research direction
Start in dev-packages/node-integration-tests and compare suites against tracing/httpIntegration-streamed. Locate static and STREAMED traceLifecycle pins, then inspect transaction-envelope assertions and child-span collection in the affected suites. Done means the package uses span streaming throughout, streamed twins are folded back, assertions cover span v2, and tracing/sampling-static plus public-api/beforeSendSpan-static remain the static coverage.
Written by the indexing model from the issue text.
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.
- Dominant language
- TypeScript
- Stars
- 8.7k
- Forks
- 1.9k
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 543
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from getsentry/sentry-javascript
-
Browser Waiting for: Product Owner
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
getsentry/sentry-javascript#24577 · 1 comment ·
-
Task
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
getsentry/sentry-javascript#24558 · 1 comment ·
-
Task
Difficulty 1/5 Under an hour Newbie friendliness 90/100
getsentry/sentry-javascript#24557 · 1 comment ·
-
Task
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
getsentry/sentry-javascript#24556 · 1 comment ·
-
Task
Difficulty 1/5 1-3 hours Newbie friendliness 90/100
getsentry/sentry-javascript#24555 · 1 comment ·
All issues in getsentry/sentry-javascript
Similar issues
-
clawsweeper:linked-pr-open clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:message-loss issue-rating: 🦞 diamond lobster maturity:stable P2
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Eynzof/Hermes-CN-Desktop#616 ·
-
ZCode 3.14.3 に対応する Open
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
supermomonga/zcode-acp#24 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
growthbook/growthbook#7100 ·
-
triage
Difficulty 1/5 1-3 hours Newbie friendliness 88/100