getsentry / getsentry/sentry-javascript

Port deno-integration-tests suites to span streaming

Ouverte
#24,004 1 commentaire 0 réactions 1 personne assignée Réclamée par @msonnb Voir sur GitHub
javascript Task
Langage dominant
TypeScript
Étoiles
8.7k
Forks
1.8k
Merge moyen
1 j 17 h
PR mergées (30 j)
523

Description

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.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.