refactor: split gateway server helpers and tests
This commit is contained in:
53
src/gateway/ws-log.test.ts
Normal file
53
src/gateway/ws-log.test.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
import { describe, expect, test } from "vitest";
|
||||
import {
|
||||
formatForLog,
|
||||
shortId,
|
||||
summarizeAgentEventForWsLog,
|
||||
} from "./ws-log.js";
|
||||
|
||||
describe("gateway ws log helpers", () => {
|
||||
test("shortId compacts uuids and long strings", () => {
|
||||
expect(shortId("12345678-1234-1234-1234-123456789abc")).toBe(
|
||||
"12345678…9abc",
|
||||
);
|
||||
expect(shortId("a".repeat(30))).toBe("aaaaaaaaaaaa…aaaa");
|
||||
expect(shortId("short")).toBe("short");
|
||||
});
|
||||
|
||||
test("formatForLog formats errors and messages", () => {
|
||||
const err = new Error("boom");
|
||||
err.name = "TestError";
|
||||
expect(formatForLog(err)).toContain("TestError");
|
||||
expect(formatForLog(err)).toContain("boom");
|
||||
|
||||
const obj = { name: "Oops", message: "failed", code: "E1" };
|
||||
expect(formatForLog(obj)).toBe("Oops: failed: code=E1");
|
||||
});
|
||||
|
||||
test("summarizeAgentEventForWsLog extracts useful fields", () => {
|
||||
const summary = summarizeAgentEventForWsLog({
|
||||
runId: "12345678-1234-1234-1234-123456789abc",
|
||||
stream: "assistant",
|
||||
seq: 2,
|
||||
data: { text: "hello world", mediaUrls: ["a", "b"] },
|
||||
});
|
||||
expect(summary).toMatchObject({
|
||||
run: "12345678…9abc",
|
||||
stream: "assistant",
|
||||
aseq: 2,
|
||||
text: "hello world",
|
||||
media: 2,
|
||||
});
|
||||
|
||||
const tool = summarizeAgentEventForWsLog({
|
||||
runId: "run-1",
|
||||
stream: "tool",
|
||||
data: { phase: "start", name: "fetch", toolCallId: "call-1" },
|
||||
});
|
||||
expect(tool).toMatchObject({
|
||||
stream: "tool",
|
||||
tool: "start:fetch",
|
||||
call: "call-1",
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user