UNPKG

nestjs-otel

Version:
47 lines (46 loc) 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const api_1 = require("@opentelemetry/api"); const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node"); const wide_event_span_processor_1 = require("./wide-event.span-processor"); describe("WideEventSpanProcessor", () => { let processor; let provider; beforeAll(() => { provider = new sdk_trace_node_1.NodeTracerProvider(); provider.register(); }); beforeEach(() => { processor = new wide_event_span_processor_1.WideEventSpanProcessor(); }); afterAll(async () => { await provider.shutdown(); }); const startSpan = (name) => api_1.trace.getTracer("test").startSpan(name); it("should register a parentless span as the local root for its trace", () => { const root = startSpan("GET /test"); processor.onStart(root, api_1.context.active()); expect((0, wide_event_span_processor_1.getLocalRootSpan)(root.spanContext().traceId)).toBe(root); root.end(); }); it("should not register a span whose parent is local", () => { const root = startSpan("GET /test"); processor.onStart(root, api_1.context.active()); const child = api_1.trace .getTracer("test") .startSpan("child", undefined, api_1.trace.setSpan(api_1.context.active(), root)); processor.onStart(child, api_1.context.active()); // local root for the trace is still the root, not the child expect((0, wide_event_span_processor_1.getLocalRootSpan)(root.spanContext().traceId)).toBe(root); child.end(); root.end(); }); it("should drop the local root from the registry when it ends", () => { const root = startSpan("GET /test"); const traceId = root.spanContext().traceId; processor.onStart(root, api_1.context.active()); processor.onEnd(root); expect((0, wide_event_span_processor_1.getLocalRootSpan)(traceId)).toBeUndefined(); root.end(); }); });