



























@@ -822,13 +822,9 @@ describe("diagnostics-otel service", () => {
822822},
823823});
824824825-expect(emitCall?.attributes).toEqual(
826-expect.not.objectContaining({
827-"openclaw.traceId": expect.anything(),
828-"openclaw.spanId": expect.anything(),
829-"openclaw.traceFlags": expect.anything(),
830-}),
831-);
825+expect(Object.hasOwn(emitCall?.attributes ?? {}, "openclaw.traceId")).toBe(false);
826+expect(Object.hasOwn(emitCall?.attributes ?? {}, "openclaw.spanId")).toBe(false);
827+expect(Object.hasOwn(emitCall?.attributes ?? {}, "openclaw.traceFlags")).toBe(false);
832828expect(telemetryState.tracer.setSpanContext).not.toHaveBeenCalled();
833829expect(emitCall?.context).toBeUndefined();
834830});
@@ -847,21 +843,18 @@ describe("diagnostics-otel service", () => {
847843{ trusted: true },
848844);
849845850-expect(telemetryState.tracer.setSpanContext).toHaveBeenCalledWith(
851-expect.anything(),
852-expect.objectContaining({
853-traceId: TRACE_ID,
854-spanId: SPAN_ID,
855-traceFlags: 1,
856-isRemote: true,
857-}),
858-);
859-expect(emitCall?.context).toEqual({
860-spanContext: expect.objectContaining({
861-traceId: TRACE_ID,
862-spanId: SPAN_ID,
863-}),
864-});
846+expect(telemetryState.tracer.setSpanContext).toHaveBeenCalledTimes(1);
847+const trustedSpanContext = telemetryState.tracer.setSpanContext.mock.calls[0]?.[1] as
848+| Record<string, unknown>
849+| undefined;
850+expect(trustedSpanContext?.traceId).toBe(TRACE_ID);
851+expect(trustedSpanContext?.spanId).toBe(SPAN_ID);
852+expect(trustedSpanContext?.traceFlags).toBe(1);
853+expect(trustedSpanContext?.isRemote).toBe(true);
854+const emitContext = emitCall?.context as { spanContext?: Record<string, unknown> } | undefined;
855+const emitSpanContext = emitContext?.spanContext;
856+expect(emitSpanContext?.traceId).toBe(TRACE_ID);
857+expect(emitSpanContext?.spanId).toBe(SPAN_ID);
865858});
866859867860test("bounds plugin-emitted log attributes and omits source paths", async () => {
@@ -893,11 +886,9 @@ describe("diagnostics-otel service", () => {
893886894887const emitCall = logEmit.mock.calls[0]?.[0];
895888expect(emitCall?.body.length).toBeLessThanOrEqual(4200);
896-expect(emitCall?.attributes).toMatchObject({
897-"openclaw.good": expect.stringMatching(/^y+/),
898-"code.lineno": 42,
899-"code.function": "handler",
900-});
889+expect(String(emitCall?.attributes?.["openclaw.good"])).toMatch(/^y+/);
890+expect(emitCall?.attributes?.["code.lineno"]).toBe(42);
891+expect(emitCall?.attributes?.["code.function"]).toBe("handler");
901892expect(String(emitCall?.attributes?.["openclaw.good"]).length).toBeLessThanOrEqual(4200);
902893expect(Object.hasOwn(emitCall?.attributes ?? {}, `openclaw.${PROTO_KEY}`)).toBe(false);
903894expect(Object.hasOwn(emitCall?.attributes ?? {}, "openclaw.constructor")).toBe(false);
@@ -908,13 +899,9 @@ describe("diagnostics-otel service", () => {
908899"openclaw.sk-1234567890abcdef1234567890abcdef", // pragma: allowlist secret
909900),
910901).toBe(false);
911-expect(emitCall?.attributes).toEqual(
912-expect.not.objectContaining({
913-"openclaw.bad key": expect.anything(),
914-"code.filepath": expect.anything(),
915-"openclaw.code.location": expect.anything(),
916-}),
917-);
902+expect(Object.hasOwn(emitCall?.attributes ?? {}, "openclaw.bad key")).toBe(false);
903+expect(Object.hasOwn(emitCall?.attributes ?? {}, "code.filepath")).toBe(false);
904+expect(Object.hasOwn(emitCall?.attributes ?? {}, "openclaw.code.location")).toBe(false);
918905await service.stop?.(ctx);
919906});
920907此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。