mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 13:20:43 +00:00
test: share telegram dm access fixture
This commit is contained in:
@@ -51,6 +51,26 @@ function createDmMessage(overrides: Partial<Message> = {}): Message {
|
||||
} as Message;
|
||||
}
|
||||
|
||||
async function enforceDefaultDmAccess(params: {
|
||||
dmPolicy: "open" | "disabled" | "pairing";
|
||||
allow?: string[];
|
||||
}) {
|
||||
const bot = { api: { sendMessage: vi.fn(async () => undefined) } };
|
||||
const allowed = await enforceTelegramDmAccess({
|
||||
isGroup: false,
|
||||
dmPolicy: params.dmPolicy,
|
||||
msg: createDmMessage(),
|
||||
chatId: 42,
|
||||
effectiveDmAllow: normalizeAllowFrom(params.allow ?? []),
|
||||
accountId: "main",
|
||||
bot: bot as never,
|
||||
logger: { info: vi.fn() },
|
||||
upsertPairingRequest: upsertChannelPairingRequestMock,
|
||||
});
|
||||
|
||||
return { allowed, bot };
|
||||
}
|
||||
|
||||
describe("enforceTelegramDmAccess", () => {
|
||||
beforeAll(async () => {
|
||||
({ enforceTelegramDmAccess } = await import("./dm-access.js"));
|
||||
@@ -61,51 +81,22 @@ describe("enforceTelegramDmAccess", () => {
|
||||
});
|
||||
|
||||
it("allows DMs when policy is open", async () => {
|
||||
const bot = { api: { sendMessage: vi.fn(async () => undefined) } };
|
||||
|
||||
const allowed = await enforceTelegramDmAccess({
|
||||
isGroup: false,
|
||||
dmPolicy: "open",
|
||||
msg: createDmMessage(),
|
||||
chatId: 42,
|
||||
effectiveDmAllow: normalizeAllowFrom([]),
|
||||
accountId: "main",
|
||||
bot: bot as never,
|
||||
logger: { info: vi.fn() },
|
||||
upsertPairingRequest: upsertChannelPairingRequestMock,
|
||||
});
|
||||
const { allowed, bot } = await enforceDefaultDmAccess({ dmPolicy: "open" });
|
||||
|
||||
expect(allowed).toBe(true);
|
||||
expect(bot.api.sendMessage).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("blocks DMs when policy is disabled", async () => {
|
||||
const allowed = await enforceTelegramDmAccess({
|
||||
isGroup: false,
|
||||
dmPolicy: "disabled",
|
||||
msg: createDmMessage(),
|
||||
chatId: 42,
|
||||
effectiveDmAllow: normalizeAllowFrom([]),
|
||||
accountId: "main",
|
||||
bot: { api: { sendMessage: vi.fn(async () => undefined) } } as never,
|
||||
logger: { info: vi.fn() },
|
||||
upsertPairingRequest: upsertChannelPairingRequestMock,
|
||||
});
|
||||
const { allowed } = await enforceDefaultDmAccess({ dmPolicy: "disabled" });
|
||||
|
||||
expect(allowed).toBe(false);
|
||||
});
|
||||
|
||||
it("allows DMs for allowlisted senders under pairing policy", async () => {
|
||||
const allowed = await enforceTelegramDmAccess({
|
||||
isGroup: false,
|
||||
const { allowed } = await enforceDefaultDmAccess({
|
||||
dmPolicy: "pairing",
|
||||
msg: createDmMessage(),
|
||||
chatId: 42,
|
||||
effectiveDmAllow: normalizeAllowFrom(["12345"]),
|
||||
accountId: "main",
|
||||
bot: { api: { sendMessage: vi.fn(async () => undefined) } } as never,
|
||||
logger: { info: vi.fn() },
|
||||
upsertPairingRequest: upsertChannelPairingRequestMock,
|
||||
allow: ["12345"],
|
||||
});
|
||||
|
||||
expect(allowed).toBe(true);
|
||||
|
||||
Reference in New Issue
Block a user