39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { formatHealthCheckFailure } from "./health-format.js";
|
|
|
|
const ansiEscape = String.fromCharCode(27);
|
|
const ansiRegex = new RegExp(`${ansiEscape}\\[[0-9;]*m`, "g");
|
|
const stripAnsi = (input: string) => input.replace(ansiRegex, "");
|
|
|
|
describe("formatHealthCheckFailure", () => {
|
|
it("keeps non-rich output stable", () => {
|
|
const err = new Error("gateway closed (1006 abnormal closure): no close reason");
|
|
expect(formatHealthCheckFailure(err, { rich: false })).toBe(
|
|
`Health check failed: ${String(err)}`,
|
|
);
|
|
});
|
|
|
|
it("formats gateway connection details as indented key/value lines", () => {
|
|
const err = new Error(
|
|
[
|
|
"gateway closed (1006 abnormal closure (no close frame)): no close reason",
|
|
"Gateway target: ws://127.0.0.1:19001",
|
|
"Source: local loopback",
|
|
"Config: /Users/steipete/.clawdbot-dev/clawdbot.json",
|
|
"Bind: loopback",
|
|
].join("\n"),
|
|
);
|
|
|
|
expect(stripAnsi(formatHealthCheckFailure(err, { rich: true }))).toBe(
|
|
[
|
|
"Health check failed: gateway closed (1006 abnormal closure (no close frame)): no close reason",
|
|
" Gateway target: ws://127.0.0.1:19001",
|
|
" Source: local loopback",
|
|
" Config: /Users/steipete/.clawdbot-dev/clawdbot.json",
|
|
" Bind: loopback",
|
|
].join("\n"),
|
|
);
|
|
});
|
|
});
|