openclaw/extensions/bluebubbles/src/status-issues.test.ts

67 lines
1.5 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { collectBlueBubblesStatusIssues } from "./runtime-api.js";
describe("collectBlueBubblesStatusIssues", () => {
it("reports unconfigured enabled accounts", () => {
const issues = collectBlueBubblesStatusIssues([
{
accountId: "default",
enabled: true,
configured: false,
},
]);
expect(issues).toEqual([
expect.objectContaining({
channel: "bluebubbles",
accountId: "default",
kind: "config",
}),
]);
});
it("reports probe failure and runtime error for configured running accounts", () => {
const issues = collectBlueBubblesStatusIssues([
{
accountId: "work",
enabled: true,
configured: true,
running: true,
lastError: "timeout",
probe: {
ok: false,
status: 503,
},
},
]);
expect(issues).toHaveLength(2);
expect(issues[0]).toEqual(
expect.objectContaining({
channel: "bluebubbles",
accountId: "work",
kind: "runtime",
}),
);
expect(issues[1]).toEqual(
expect.objectContaining({
channel: "bluebubbles",
accountId: "work",
kind: "runtime",
message: "Channel error: timeout",
}),
);
});
it("skips disabled accounts", () => {
const issues = collectBlueBubblesStatusIssues([
{
accountId: "disabled",
enabled: false,
configured: false,
},
]);
expect(issues).toEqual([]);
});
});