62 lines
1.6 KiB
TypeScript
62 lines
1.6 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import type { ClawdbotConfig } from "../../config/config.js";
|
|
import type { GroupKeyResolution } from "../../config/sessions.js";
|
|
import type { TemplateContext } from "../templating.js";
|
|
import { resolveGroupRequireMention } from "./groups.js";
|
|
|
|
describe("resolveGroupRequireMention", () => {
|
|
it("respects Discord guild/channel requireMention settings", () => {
|
|
const cfg: ClawdbotConfig = {
|
|
discord: {
|
|
guilds: {
|
|
"145": {
|
|
requireMention: false,
|
|
channels: {
|
|
general: { allow: true },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
};
|
|
const ctx: TemplateContext = {
|
|
Provider: "discord",
|
|
From: "group:123",
|
|
GroupRoom: "#general",
|
|
GroupSpace: "145",
|
|
};
|
|
const groupResolution: GroupKeyResolution = {
|
|
provider: "discord",
|
|
id: "123",
|
|
chatType: "group",
|
|
};
|
|
|
|
expect(resolveGroupRequireMention({ cfg, ctx, groupResolution })).toBe(
|
|
false,
|
|
);
|
|
});
|
|
|
|
it("respects Slack channel requireMention settings", () => {
|
|
const cfg: ClawdbotConfig = {
|
|
slack: {
|
|
channels: {
|
|
C123: { requireMention: false },
|
|
},
|
|
},
|
|
};
|
|
const ctx: TemplateContext = {
|
|
Provider: "slack",
|
|
From: "slack:channel:C123",
|
|
GroupSubject: "#general",
|
|
};
|
|
const groupResolution: GroupKeyResolution = {
|
|
provider: "slack",
|
|
id: "C123",
|
|
chatType: "group",
|
|
};
|
|
|
|
expect(resolveGroupRequireMention({ cfg, ctx, groupResolution })).toBe(
|
|
false,
|
|
);
|
|
});
|
|
});
|