























@@ -91,6 +91,12 @@ function mockFirstReplyFailureWithWrappedError(msg: WebInboundMsg, message: stri
9191});
9292}
939394+function expectFirstSendMediaPayload(msg: WebInboundMsg) {
95+const payload = vi.mocked(msg.sendMedia).mock.calls[0]?.[0];
96+expect(payload).toBeDefined();
97+return payload;
98+}
99+94100function mockSecondReplySuccess(msg: WebInboundMsg) {
95101(msg.reply as unknown as { mockResolvedValueOnce: (v: unknown) => void }).mockResolvedValueOnce(
96102undefined,
@@ -524,14 +530,14 @@ describe("deliverWebReply", () => {
524530audio: expect.any(Buffer),
525531ptt: true,
526532mimetype: "audio/ogg; codecs=opus",
527-caption: "caption",
528533}),
529534undefined,
530535);
531-expect(msg.reply).not.toHaveBeenCalled();
536+expect(expectFirstSendMediaPayload(msg)).not.toHaveProperty("caption");
537+expect(msg.reply).toHaveBeenCalledWith("caption", undefined);
532538});
533539534-it("sends audio media as ptt voice note", async () => {
540+it("sends audio media as ptt voice note with visible text separately", async () => {
535541const msg = makeMsg();
536542(
537543loadWebMedia as unknown as { mockResolvedValueOnce: (v: unknown) => void }
@@ -555,10 +561,11 @@ describe("deliverWebReply", () => {
555561audio: expect.any(Buffer),
556562ptt: true,
557563mimetype: "audio/ogg; codecs=opus",
558-caption: "cap",
559564}),
560565undefined,
561566);
567+expect(expectFirstSendMediaPayload(msg)).not.toHaveProperty("caption");
568+expect(msg.reply).toHaveBeenCalledWith("cap", undefined);
562569});
563570564571it("transcodes mp3 audio media before sending a ptt voice note", async () => {
@@ -594,10 +601,11 @@ describe("deliverWebReply", () => {
594601audio: Buffer.from("opus-output"),
595602ptt: true,
596603mimetype: "audio/ogg; codecs=opus",
597-caption: "cap",
598604}),
599605undefined,
600606);
607+expect(expectFirstSendMediaPayload(msg)).not.toHaveProperty("caption");
608+expect(msg.reply).toHaveBeenCalledWith("cap", undefined);
601609});
602610603611it("sends video media", async () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。