test: share telegram dm access fixture

This commit is contained in:
Peter Steinberger
2026-04-20 17:14:43 +01:00
parent 6a4d633e42
commit c0490aa418

View File

@@ -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);