import { describe, expect, it } from "vitest"; import { stripAnsi } from "../terminal/ansi.js"; import { formatHealthCheckFailure } from "./health-format.js"; 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/.openclaw-dev/openclaw.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/.openclaw-dev/openclaw.json", " Bind: loopback", ].join("\n"), ); }); });