
























@@ -350,9 +350,8 @@ describe("sendMediaFeishu msg_type routing", () => {
350350expect(fileData.file).toEqual(Buffer.from("remote-mp3"));
351351expect(callData<{ msg_type?: string }>(messageCreateMock).msg_type).toBe("file");
352352expect(result.voiceIntentDegradedToFile).toBe(true);
353-const warnCall = warnSpy.mock.calls[0];
354-expect(warnCall?.[0]).toContain("audioAsVoice transcode failed");
355-expect(warnCall?.[1]).toBeInstanceOf(Error);
353+expect(mockCallArg<string>(warnSpy, 0, 0)).toContain("audioAsVoice transcode failed");
354+expect(mockCallArg<unknown>(warnSpy, 0, 1)).toBeInstanceOf(Error);
356355warnSpy.mockRestore();
357356});
358357@@ -444,8 +443,9 @@ describe("sendMediaFeishu msg_type routing", () => {
444443replyInThread: false,
445444});
446445447-const callData = messageReplyMock.mock.calls[0][0].data;
448-expect(callData).not.toHaveProperty("reply_in_thread");
446+expect(callData<Record<string, unknown>>(messageReplyMock)).not.toHaveProperty(
447+"reply_in_thread",
448+);
449449});
450450451451it("passes mediaLocalRoots as localRoots to loadWebMedia for local paths (#27884)", async () => {
@@ -577,8 +577,7 @@ describe("sendMediaFeishu msg_type routing", () => {
577577fileName: "测试文档.pdf",
578578});
579579580-const createCall = fileCreateMock.mock.calls[0][0];
581-expect(createCall.data.file_name).toBe("测试文档.pdf");
580+expect(callData<{ file_name?: string }>(fileCreateMock).file_name).toBe("测试文档.pdf");
582581});
583582584583it("preserves ASCII filenames unchanged for file uploads", async () => {
@@ -589,8 +588,7 @@ describe("sendMediaFeishu msg_type routing", () => {
589588fileName: "report-2026.pdf",
590589});
591590592-const createCall = fileCreateMock.mock.calls[0][0];
593-expect(createCall.data.file_name).toBe("report-2026.pdf");
591+expect(callData<{ file_name?: string }>(fileCreateMock).file_name).toBe("report-2026.pdf");
594592});
595593596594it("preserves special Unicode characters (em-dash, full-width brackets) in filenames", async () => {
@@ -601,8 +599,7 @@ describe("sendMediaFeishu msg_type routing", () => {
601599fileName: "报告—详情(2026).md",
602600});
603601604-const createCall = fileCreateMock.mock.calls[0][0];
605-expect(createCall.data.file_name).toBe("报告—详情(2026).md");
602+expect(callData<{ file_name?: string }>(fileCreateMock).file_name).toBe("报告—详情(2026).md");
606603});
607604});
608605此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。