getsentry / getsentry/sentry-javascript
node-integration-tests: port trace semantics suites to span streaming
- 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
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