mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-28 18:33:37 +00:00
83 lines
2.2 KiB
TypeScript
83 lines
2.2 KiB
TypeScript
import type { ChannelAccountSnapshot } from "openclaw/plugin-sdk/channel-contract";
|
|
import { describe, expect, it } from "vitest";
|
|
import { collectDiscordStatusIssues } from "./status-issues.js";
|
|
|
|
describe("collectDiscordStatusIssues", () => {
|
|
it("reports disabled message content intent and unresolved channel ids", () => {
|
|
const issues = collectDiscordStatusIssues([
|
|
{
|
|
accountId: "ops",
|
|
enabled: true,
|
|
configured: true,
|
|
application: {
|
|
intents: {
|
|
messageContent: "disabled",
|
|
},
|
|
},
|
|
audit: {
|
|
unresolvedChannels: 2,
|
|
},
|
|
} as ChannelAccountSnapshot,
|
|
]);
|
|
|
|
expect(issues).toEqual(
|
|
expect.arrayContaining([
|
|
expect.objectContaining({
|
|
channel: "discord",
|
|
accountId: "ops",
|
|
kind: "intent",
|
|
}),
|
|
expect.objectContaining({
|
|
channel: "discord",
|
|
accountId: "ops",
|
|
kind: "config",
|
|
}),
|
|
]),
|
|
);
|
|
});
|
|
|
|
it("reports channel permission failures with match metadata", () => {
|
|
const issues = collectDiscordStatusIssues([
|
|
{
|
|
accountId: "ops",
|
|
enabled: true,
|
|
configured: true,
|
|
audit: {
|
|
channels: [
|
|
{
|
|
channelId: "123",
|
|
ok: false,
|
|
missing: ["ViewChannel", "SendMessages"],
|
|
error: "403",
|
|
matchKey: "alerts",
|
|
matchSource: "guilds.ops.channels",
|
|
},
|
|
],
|
|
},
|
|
} as ChannelAccountSnapshot,
|
|
]);
|
|
|
|
expect(issues).toHaveLength(1);
|
|
expect(issues[0]).toMatchObject({
|
|
channel: "discord",
|
|
accountId: "ops",
|
|
kind: "permissions",
|
|
});
|
|
expect(issues[0]?.message).toContain("Channel 123 permission check failed");
|
|
expect(issues[0]?.message).toContain("alerts");
|
|
expect(issues[0]?.message).toContain("guilds.ops.channels");
|
|
});
|
|
|
|
it("ignores accounts that are not enabled and configured", () => {
|
|
expect(
|
|
collectDiscordStatusIssues([
|
|
{
|
|
accountId: "ops",
|
|
enabled: false,
|
|
configured: true,
|
|
} as ChannelAccountSnapshot,
|
|
]),
|
|
).toEqual([]);
|
|
});
|
|
});
|