diff --git a/src/gateway/gateway-misc.test.ts b/src/gateway/gateway-misc.test.ts index abb3f7fcf..033f4aa53 100644 --- a/src/gateway/gateway-misc.test.ts +++ b/src/gateway/gateway-misc.test.ts @@ -7,6 +7,7 @@ import type { RequestFrame } from "./protocol/index.js"; import type { GatewayClient as GatewayMethodClient } from "./server-methods/types.js"; import type { GatewayRequestContext, RespondFn } from "./server-methods/types.js"; import type { GatewayWsClient } from "./server/ws-types.js"; +import { defaultVoiceWakeTriggers } from "../infra/voicewake.js"; import { GatewayClient } from "./client.js"; import { handleControlUiHttpRequest } from "./control-ui.js"; import { @@ -17,6 +18,7 @@ import { createGatewayBroadcaster } from "./server-broadcast.js"; import { createChatRunRegistry } from "./server-chat.js"; import { handleNodeInvokeResult } from "./server-methods/nodes.handlers.invoke-result.js"; import { createNodeSubscriptionManager } from "./server-node-subscriptions.js"; +import { formatError, normalizeVoiceWakeTriggers } from "./server-utils.js"; const wsMockState = vi.hoisted(() => ({ last: null as { url: unknown; opts: unknown } | null, @@ -281,3 +283,27 @@ describe("resolveNodeCommandAllowlist", () => { expect(allow.has("camera.clip")).toBe(false); }); }); + +describe("normalizeVoiceWakeTriggers", () => { + test("returns defaults when input is empty", () => { + expect(normalizeVoiceWakeTriggers([])).toEqual(defaultVoiceWakeTriggers()); + expect(normalizeVoiceWakeTriggers(null)).toEqual(defaultVoiceWakeTriggers()); + }); + + test("trims and limits entries", () => { + const result = normalizeVoiceWakeTriggers([" hello ", "", "world"]); + expect(result).toEqual(["hello", "world"]); + }); +}); + +describe("formatError", () => { + test("prefers message for Error", () => { + expect(formatError(new Error("boom"))).toBe("boom"); + }); + + test("handles status/code", () => { + expect(formatError({ status: 500, code: "EPIPE" })).toBe("status=500 code=EPIPE"); + expect(formatError({ status: 404 })).toBe("status=404 code=unknown"); + expect(formatError({ code: "ENOENT" })).toBe("status=unknown code=ENOENT"); + }); +}); diff --git a/src/gateway/server-utils.test.ts b/src/gateway/server-utils.test.ts deleted file mode 100644 index 830868a21..000000000 --- a/src/gateway/server-utils.test.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { describe, expect, test } from "vitest"; -import { defaultVoiceWakeTriggers } from "../infra/voicewake.js"; -import { formatError, normalizeVoiceWakeTriggers } from "./server-utils.js"; - -describe("normalizeVoiceWakeTriggers", () => { - test("returns defaults when input is empty", () => { - expect(normalizeVoiceWakeTriggers([])).toEqual(defaultVoiceWakeTriggers()); - expect(normalizeVoiceWakeTriggers(null)).toEqual(defaultVoiceWakeTriggers()); - }); - - test("trims and limits entries", () => { - const result = normalizeVoiceWakeTriggers([" hello ", "", "world"]); - expect(result).toEqual(["hello", "world"]); - }); -}); - -describe("formatError", () => { - test("prefers message for Error", () => { - expect(formatError(new Error("boom"))).toBe("boom"); - }); - - test("handles status/code", () => { - expect(formatError({ status: 500, code: "EPIPE" })).toBe("status=500 code=EPIPE"); - expect(formatError({ status: 404 })).toBe("status=404 code=unknown"); - expect(formatError({ code: "ENOENT" })).toBe("status=unknown code=ENOENT"); - }); -});