

























@@ -60,6 +60,16 @@ function requirePayloadSender(
6060return payload;
6161}
626263+function requirePollSender(
64+adapter: DiscordMessageAdapter,
65+): NonNullable<DiscordMessageSender["poll"]> {
66+const poll = adapter.send?.poll;
67+if (!poll) {
68+throw new Error("Expected discord message adapter poll sender");
69+}
70+return poll;
71+}
72+6373describe("discord channel message adapter", () => {
6474beforeEach(() => {
6575resetDiscordOutboundMocks(hoisted);
@@ -70,6 +80,7 @@ describe("discord channel message adapter", () => {
7080const sendText = requireTextSender(adapter);
7181const sendMedia = requireMediaSender(adapter);
7282const sendPayload = requirePayloadSender(adapter);
83+const sendPoll = requirePollSender(adapter);
73847485const proveText = async () => {
7586resetDiscordOutboundMocks(hoisted);
@@ -144,6 +155,27 @@ describe("discord channel message adapter", () => {
144155expect(result.receipt.platformMessageIds).toEqual(["msg-1"]);
145156};
146157158+const provePoll = async () => {
159+resetDiscordOutboundMocks(hoisted);
160+const result = await sendPoll({
161+cfg: {},
162+to: "channel:123456",
163+poll: { question: "Ship?", options: ["Yes", "No"] },
164+accountId: "default",
165+silent: true,
166+});
167+expect(hoisted.sendPollDiscordMock).toHaveBeenLastCalledWith(
168+"channel:123456",
169+{ question: "Ship?", options: ["Yes", "No"] },
170+{
171+accountId: "default",
172+silent: true,
173+cfg: {},
174+},
175+);
176+expect(result.receipt.parts[0]?.kind).toBe("poll");
177+};
178+147179const proveReplyThreadSilent = async () => {
148180resetDiscordOutboundMocks(hoisted);
149181const result = await sendText({
@@ -180,6 +212,7 @@ describe("discord channel message adapter", () => {
180212proofs: {
181213text: proveText,
182214media: proveMedia,
215+poll: provePoll,
183216payload: provePayload,
184217silent: proveReplyThreadSilent,
185218replyTo: proveReplyThreadSilent,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。