getsentry / getsentry/sentry-javascript

Port deno-integration-tests suites to span streaming

Đang mở
#24,004 1 bình luận 0 reaction 1 người được giao Được @msonnb nhận Xem trên GitHub
javascript Task
Ngôn ngữ chính
TypeScript
Star
8.7k
Fork
1.8k
Merge trung bình
1 ngày 17 giờ
Pull request đã merge (30 ngày)
523

Mô tả

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.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.