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"); }); });