


















@@ -26,6 +26,13 @@ describe("diagnostic-events", () => {
2626vi.restoreAllMocks();
2727});
282829+function expectConsoleErrorPrefix(errorSpy: { mock: { calls: unknown[][] } }, prefix: string) {
30+expect(errorSpy.mock.calls).toHaveLength(1);
31+const message = errorSpy.mock.calls[0]?.[0];
32+expect(typeof message).toBe("string");
33+expect((message as string).startsWith(prefix)).toBe(true);
34+}
35+2936it("emits monotonic seq and timestamps to subscribers", () => {
3037vi.spyOn(Date, "now").mockReturnValueOnce(111).mockReturnValueOnce(222);
3138const events: Array<{ seq: number; ts: number; type: string }> = [];
@@ -65,8 +72,9 @@ describe("diagnostic-events", () => {
6572});
66736774expect(seen).toEqual(["message.queued"]);
68-expect(errorSpy).toHaveBeenCalledWith(
69-expect.stringContaining("listener error type=message.queued seq=1: Error: boom"),
75+expectConsoleErrorPrefix(
76+errorSpy,
77+"[diagnostic-events] listener error type=message.queued seq=1: Error: boom",
7078);
7179});
7280@@ -292,8 +300,9 @@ describe("diagnostic-events", () => {
292300});
293301294302expect(seen).toEqual([false]);
295-expect(errorSpy).toHaveBeenCalledWith(
296-expect.stringContaining("listener error type=message.queued seq=1: TypeError"),
303+expectConsoleErrorPrefix(
304+errorSpy,
305+"[diagnostic-events] listener error type=message.queued seq=1: TypeError",
297306);
298307});
299308@@ -322,8 +331,9 @@ describe("diagnostic-events", () => {
322331323332await new Promise<void>((resolve) => setImmediate(resolve));
324333expect(seen).toEqual([{ traceId: trace.traceId, trusted: true }]);
325-expect(errorSpy).toHaveBeenCalledWith(
326-expect.stringContaining("listener error type=model.call.started seq=1: TypeError"),
334+expectConsoleErrorPrefix(
335+errorSpy,
336+"[diagnostic-events] listener error type=model.call.started seq=1: TypeError",
327337);
328338});
329339@@ -347,8 +357,9 @@ describe("diagnostic-events", () => {
347357});
348358349359expect(seen).toEqual([{ total: 42, trusted: true }]);
350-expect(errorSpy).toHaveBeenCalledWith(
351-expect.stringContaining("listener error type=model.usage seq=1: TypeError"),
360+expectConsoleErrorPrefix(
361+errorSpy,
362+"[diagnostic-events] listener error type=model.usage seq=1: TypeError",
352363);
353364});
354365@@ -457,10 +468,8 @@ describe("diagnostic-events", () => {
457468});
458469459470expect(calls).toBe(101);
460-expect(errorSpy).toHaveBeenCalledWith(
461-expect.stringContaining(
462-"recursion guard tripped at depth=101, dropping type=queue.lane.enqueue",
463-),
471+expect(errorSpy).toHaveBeenCalledExactlyOnceWith(
472+"[diagnostic-events] recursion guard tripped at depth=101, dropping type=queue.lane.enqueue",
464473);
465474});
466475此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。