mirror of https://github.com/openclaw/openclaw.git
78 lines
2.3 KiB
TypeScript
78 lines
2.3 KiB
TypeScript
import type { ChannelAccountSnapshot } from "openclaw/plugin-sdk/channel-contract";
|
|
import { describe, expect, it } from "vitest";
|
|
import { collectTelegramStatusIssues } from "./status-issues.js";
|
|
|
|
describe("collectTelegramStatusIssues", () => {
|
|
it("reports privacy-mode and wildcard unmentioned-group configuration risks", () => {
|
|
const issues = collectTelegramStatusIssues([
|
|
{
|
|
accountId: "main",
|
|
enabled: true,
|
|
configured: true,
|
|
allowUnmentionedGroups: true,
|
|
audit: {
|
|
hasWildcardUnmentionedGroups: true,
|
|
unresolvedGroups: 2,
|
|
},
|
|
} as ChannelAccountSnapshot,
|
|
]);
|
|
|
|
expect(issues).toEqual(
|
|
expect.arrayContaining([
|
|
expect.objectContaining({
|
|
channel: "telegram",
|
|
accountId: "main",
|
|
kind: "config",
|
|
}),
|
|
]),
|
|
);
|
|
expect(issues.some((issue) => issue.message.includes("privacy mode"))).toBe(true);
|
|
expect(issues.some((issue) => issue.message.includes('uses "*"'))).toBe(true);
|
|
expect(issues.some((issue) => issue.message.includes("unresolvedGroups=2"))).toBe(true);
|
|
});
|
|
|
|
it("reports unreachable groups with match metadata", () => {
|
|
const issues = collectTelegramStatusIssues([
|
|
{
|
|
accountId: "main",
|
|
enabled: true,
|
|
configured: true,
|
|
audit: {
|
|
groups: [
|
|
{
|
|
chatId: "-100123",
|
|
ok: false,
|
|
status: "left",
|
|
error: "403",
|
|
matchKey: "alerts",
|
|
matchSource: "channels.telegram.groups",
|
|
},
|
|
],
|
|
},
|
|
} as ChannelAccountSnapshot,
|
|
]);
|
|
|
|
expect(issues).toHaveLength(1);
|
|
expect(issues[0]).toMatchObject({
|
|
channel: "telegram",
|
|
accountId: "main",
|
|
kind: "runtime",
|
|
});
|
|
expect(issues[0]?.message).toContain("Group -100123 not reachable");
|
|
expect(issues[0]?.message).toContain("alerts");
|
|
expect(issues[0]?.message).toContain("channels.telegram.groups");
|
|
});
|
|
|
|
it("ignores accounts that are not both enabled and configured", () => {
|
|
expect(
|
|
collectTelegramStatusIssues([
|
|
{
|
|
accountId: "main",
|
|
enabled: false,
|
|
configured: true,
|
|
} as ChannelAccountSnapshot,
|
|
]),
|
|
).toEqual([]);
|
|
});
|
|
});
|