getsentry / getsentry/sentry-javascript

Port deno-integration-tests suites to span streaming

Abierto
#24,004 1 comentario 0 reacciones 1 asignado Reclamado por @msonnb Ver en GitHub
javascript Task
Lenguaje dominante
TypeScript
Estrellas
8.7k
Forks
1.8k
Merge medio
1 d 17 h
PR fusionados (30 d)
515

Descripción

Split out of getsentry/sentry-javascript#23812, which ported the Deno E2E apps (`deno`, `deno-mysql`, `deno-pg`, `deno-redis`) to span streaming in getsentry/sentry-javascript#24002 and #24003.

The `dev-packages/deno-integration-tests` suites still carry the `traceLifecycle: 'static'` pin from getsentry/sentry-javascript#22590: 25 suites, 51 pins, mostly the `orchestrion-*` suites plus `deno-serve-request-bodies`.

## Why this is separate

These suites don't go through the event proxy. They assert via a `transactionSink()` helper wired into `beforeSendTransaction` in `dev-packages/deno-integration-tests/src/index.ts`, so porting them is a harness change, not a spec rewrite:

* Replace the `beforeSendTransaction` sink with a span sink (e.g. `beforeSendSpan` or a mock transport capturing span v2 envelopes).
* Rewrite the per-suite assertions from `transaction.spans[]` / `contexts.trace` to streamed span shape (`span.name`, `getSpanOp`, `span.attributes['x'].value`, `is_segment`).
* Streamed db/http/gen_ai span names are low cardinality, so every name assertion in the orchestrion suites changes.

## What to do

1. Add a streamed-span sink to `src/index.ts` next to `transactionSink()`.
2. Remove the `traceLifecycle: 'static'` pins from every `suites/**/test.ts`.
3. Rewrite the assertions per suite.

Consider keeping one suite on the static pin (or duplicating one) so the static trace lifecycle stays covered for this harness, mirroring the `*-static` E2E apps.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.