Squashed 'third_party/pi/' content from commit d981de122
git-subtree-dir: third_party/pi git-subtree-split: d981de1229ef899957bbe968bc8dcda02a21f477
This commit is contained in:
29
packages/agent/test/harness/context.test.ts
Normal file
29
packages/agent/test/harness/context.test.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import {
|
||||
BACKGROUND_CONTEXT,
|
||||
getTelemetryContext,
|
||||
TODO_CONTEXT,
|
||||
withTelemetryContext,
|
||||
} from "../../src/harness/context.ts";
|
||||
import { InMemoryTelemetryContext, NOOP_TELEMETRY_CONTEXT } from "../../src/index.ts";
|
||||
|
||||
describe("harness Context telemetry", () => {
|
||||
it("uses no-op telemetry when none is attached", () => {
|
||||
expect(getTelemetryContext(BACKGROUND_CONTEXT)).toBe(NOOP_TELEMETRY_CONTEXT);
|
||||
expect(getTelemetryContext(TODO_CONTEXT)).toBe(NOOP_TELEMETRY_CONTEXT);
|
||||
});
|
||||
|
||||
it("carries telemetry as an ordinary context value", async () => {
|
||||
const telemetry = new InMemoryTelemetryContext();
|
||||
const context = withTelemetryContext(telemetry, BACKGROUND_CONTEXT);
|
||||
|
||||
await getTelemetryContext(context).startSpan({ name: "parent" }, async (span) => {
|
||||
const childContext = withTelemetryContext(span, context);
|
||||
await getTelemetryContext(childContext).startSpan({ name: "child" }, () => undefined);
|
||||
});
|
||||
|
||||
const spans = telemetry.getSpans();
|
||||
expect(spans.map((span) => span.name)).toEqual(["parent", "child"]);
|
||||
expect(spans[1]?.parentId).toBe(spans[0]?.id);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user