























@@ -29,6 +29,16 @@ import type { InputItem, ResponseCreateEvent } from "./openai-ws-types.js";
2929import { log } from "./pi-embedded-runner/logger.js";
3030import { SYSTEM_PROMPT_CACHE_BOUNDARY } from "./system-prompt-cache-boundary.js";
313132+function countMatching<T>(items: readonly T[], predicate: (item: T) => boolean) {
33+let count = 0;
34+for (const item of items) {
35+if (predicate(item)) {
36+count += 1;
37+}
38+}
39+return count;
40+}
41+3242// ─────────────────────────────────────────────────────────────────────────────
3343// Mock OpenAIWebSocketManager
3444// ─────────────────────────────────────────────────────────────────────────────
@@ -2751,7 +2761,7 @@ describe("createOpenAIWebSocketStreamFn", () => {
2751276127522762expect(streamSimpleCalls.length).toBeGreaterThanOrEqual(1);
27532763expect(manager.closeCallCount).toBeGreaterThanOrEqual(1);
2754-expect(events.filter((event) => event.type === "start")).toHaveLength(1);
2764+expect(countMatching(events, (event) => event.type === "start")).toBe(1);
27552765expect(events.some((event) => event.type === "error")).toBe(false);
27562766const doneEvent = events.find((event) => event.type === "done");
27572767expect(doneEvent?.message?.content?.[0]?.text).toBe("http fallback response");
@@ -2785,7 +2795,7 @@ describe("createOpenAIWebSocketStreamFn", () => {
2785279527862796expect(streamSimpleCalls.length).toBeGreaterThanOrEqual(1);
27872797expect(manager.closeCallCount).toBeGreaterThanOrEqual(1);
2788-expect(events.filter((event) => event.type === "start")).toHaveLength(1);
2798+expect(countMatching(events, (event) => event.type === "start")).toBe(1);
27892799expect(events.some((event) => event.type === "error")).toBe(false);
27902800const doneEvent = events.find((event) => event.type === "done");
27912801expect(doneEvent?.message?.content?.[0]?.text).toBe("http fallback response");
@@ -2820,7 +2830,7 @@ describe("createOpenAIWebSocketStreamFn", () => {
2820283028212831expect(streamSimpleCalls).toHaveLength(0);
28222832expect(firstManager.closeCallCount).toBeGreaterThanOrEqual(1);
2823-expect(events.filter((event) => event.type === "start")).toHaveLength(1);
2833+expect(countMatching(events, (event) => event.type === "start")).toBe(1);
28242834const doneEvent = events.find((event) => event.type === "done");
28252835expect(doneEvent?.message?.content?.[0]?.text).toBe("retry succeeded");
28262836});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。