getsentry / getsentry/sentry-javascript

node-integration-tests: port trace semantics suites to span streaming

Open
#24,140 3 comments 0 reactions 0 assignees View on GitHub
javascript Task
Dominant language
TypeScript
Stars
8.7k
Forks
1.8k
Avg merge
1d 17h
Merged PRs (30d)
515

Description

Follow the porting recipe in the parent issue.

Sampling, DSC, envelope headers and span linking. These suites assert on envelope headers and trace propagation rather than on instrumentation output, so they are the ones most likely to expose a real product bug rather than a test rewrite.

## Suites

* Envelope headers and DSC: `tracing/envelope-header/*` (7 dirs), `tracing/dsc-txn-name-update`, `tracing/double-baggage/*` (3 dirs), `tracing/meta-tags`, `tracing/meta-tags-twp`, `tracing/meta-tags-twp-errors`
* Sampling: `tracing/sampling-static`, `tracing/sample-rate-propagation/*` (4 dirs), `tracing/sample-rand-propagation`, `tracing/no-parent-span-client-report`
* Trace lifetime: `tracing/continueTrace`, `tracing/startNewTrace`, `tracing/traceid-recycling`, `tracing/traceid-recycling-with-spans`
* Span shaping: `tracing/linking`, `tracing/maxSpans`, `tracing/tracer-start-active-span-error`
* Public API span surface: `public-api/startSpan/*` (7 dirs), `public-api/beforeSendSpan-static`, `public-api/bindScopeToEmitter`, `public-api/setMeasurement`, `public-api/scopes/*`

## Twins to fold back

`tracing/sampling-streamed`, `tracing/ignoreSpans-streamed/*`, `public-api/beforeSendSpan-streamed`, `context-streamed/*`, and the 6 `public-api/startSpan/*-streamed` dirs.

## Keep static trace lifecycle coverage

This is the group that owns the guard. Keep `tracing/sampling-static` and `public-api/beforeSendSpan-static` on the static pin. Everything else moves.

Contributor guide

Open the contributing guide

Research direction

Start with the porting recipe in the parent issue, then inspect the listed tracing/* and public-api/* suites and their -streamed twins. Port the specified suites to span streaming, fold back the named twins, and keep tracing/sampling-static and public-api/beforeSendSpan-static on the static pin. Done means the listed integration suites cover sampling, propagation, span linking, and public API behavior under span streaming.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js, typescript
Domain
testing
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.