Skip to content

Port deno-integration-tests suites to span streaming #24004

Description

@msonnb

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

The dev-packages/deno-integration-tests suites still carry the traceLifecycle: 'static' pin from #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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

TaskjavascriptPull requests that update javascript code

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions