




























@@ -1831,22 +1831,23 @@ describe("diagnostics-otel service", () => {
18311831const modelSpanId = modelSpan?.spanContext.mock.results[0]?.value?.spanId;
1832183218331833expect(telemetryState.tracer.setSpanContext).toHaveBeenCalledTimes(2);
1834-expect(telemetryState.tracer.setSpanContext.mock.calls.map((call) => call[1])).toEqual([
1835-expect.objectContaining({ traceId: TRACE_ID, spanId: runSpanId }),
1836-expect.objectContaining({ traceId: TRACE_ID, spanId: modelSpanId }),
1837-]);
1834+const linkedSpanContexts = telemetryState.tracer.setSpanContext.mock.calls.map(
1835+(call) => call[1] as Record<string, unknown>,
1836+);
1837+expect(linkedSpanContexts[0]?.traceId).toBe(TRACE_ID);
1838+expect(linkedSpanContexts[0]?.spanId).toBe(runSpanId);
1839+expect(linkedSpanContexts[1]?.traceId).toBe(TRACE_ID);
1840+expect(linkedSpanContexts[1]?.spanId).toBe(modelSpanId);
1838184118391842const parentBySpanName = Object.fromEntries(
18401843telemetryState.tracer.startSpan.mock.calls.map((call) => [
18411844call[0],
18421845(call[2] as { spanContext?: { spanId?: string } } | undefined)?.spanContext?.spanId,
18431846]),
18441847);
1845-expect(parentBySpanName).toMatchObject({
1846-"openclaw.run": undefined,
1847-"openclaw.model.call": runSpanId,
1848-"openclaw.tool.execution": modelSpanId,
1849-});
1848+expect(parentBySpanName["openclaw.run"]).toBeUndefined();
1849+expect(parentBySpanName["openclaw.model.call"]).toBe(runSpanId);
1850+expect(parentBySpanName["openclaw.tool.execution"]).toBe(modelSpanId);
18501851expect(toolSpan?.setStatus).toHaveBeenCalledWith({
18511852code: 2,
18521853message: "TypeError",
@@ -1906,15 +1907,16 @@ describe("diagnostics-otel service", () => {
19061907(call) => call[0] === "openclaw.model.usage",
19071908);
190819091909-expect(telemetryState.tracer.setSpanContext).toHaveBeenCalledWith(
1910-expect.anything(),
1911-expect.objectContaining({ traceId: TRACE_ID, spanId: runSpanId }),
1912-);
1910+const linkedSpanContext = telemetryState.tracer.setSpanContext.mock.calls[0]?.[1] as
1911+| Record<string, unknown>
1912+| undefined;
1913+expect(linkedSpanContext?.traceId).toBe(TRACE_ID);
1914+expect(linkedSpanContext?.spanId).toBe(runSpanId);
19131915expect(
19141916(modelUsageCall?.[2] as { spanContext?: { spanId?: string } } | undefined)?.spanContext
19151917?.spanId,
19161918).toBe(runSpanId);
1917-expect(runSpan?.end).toHaveBeenCalledWith(expect.any(Number));
1919+expect(runSpan?.end.mock.calls[0]?.[0]).toBeTypeOf("number");
19181920await service.stop?.(ctx);
19191921});
19201922此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。