






















@@ -39,6 +39,14 @@ async function* chunks(parts: Buffer[]): AsyncGenerator<Buffer> {
3939}
4040}
414142+function saveMediaBufferCall(): unknown[] {
43+const call = saveMediaBufferMock.mock.calls.at(0);
44+if (!call) {
45+throw new Error("Expected saveMediaBuffer call");
46+}
47+return call;
48+}
49+4250describe("downloadLineMedia", () => {
4351beforeAll(async () => {
4452({ downloadLineMedia } = await import("./download.js"));
@@ -70,11 +78,11 @@ describe("downloadLineMedia", () => {
7078const result = await downloadLineMedia("mid-jpeg", "token");
71797280expect(saveMediaBufferMock).toHaveBeenCalledTimes(1);
73-const call = saveMediaBufferMock.mock.calls[0];
74-expect((call?.[0] as Buffer).equals(jpeg)).toBe(true);
75-expect(call?.[1]).toBe("image/jpeg");
76-expect(call?.[2]).toBe("inbound");
77-expect(call?.[3]).toBe(10 * 1024 * 1024);
81+const call = saveMediaBufferCall();
82+expect((call[0] as Buffer).equals(jpeg)).toBe(true);
83+expect(call[1]).toBe("image/jpeg");
84+expect(call[2]).toBe("inbound");
85+expect(call[3]).toBe(10 * 1024 * 1024);
7886expect(result).toEqual({
7987path: "/home/user/.openclaw/media/inbound/saved-media",
8088contentType: "image/jpeg",
@@ -91,7 +99,7 @@ describe("downloadLineMedia", () => {
919992100expect(result.size).toBe(jpeg.length);
93101expect(result.contentType).toBe("image/jpeg");
94-for (const arg of saveMediaBufferMock.mock.calls[0] ?? []) {
102+for (const arg of saveMediaBufferCall()) {
95103if (typeof arg === "string") {
96104expect(arg).not.toContain(messageId);
97105}
@@ -114,8 +122,8 @@ describe("downloadLineMedia", () => {
114122const result = await downloadLineMedia("mid-audio", "token");
115123116124expect(result.contentType).toBe("audio/mp4");
117-expect(saveMediaBufferMock.mock.calls[0]?.[1]).toBe("audio/mp4");
118-expect(saveMediaBufferMock.mock.calls[0]?.[2]).toBe("inbound");
125+expect(saveMediaBufferCall()[1]).toBe("audio/mp4");
126+expect(saveMediaBufferCall()[2]).toBe("inbound");
119127});
120128121129it("detects MP4 video from ftyp major brand (isom)", async () => {
@@ -127,7 +135,7 @@ describe("downloadLineMedia", () => {
127135const result = await downloadLineMedia("mid-mp4", "token");
128136129137expect(result.contentType).toBe("video/mp4");
130-expect(saveMediaBufferMock.mock.calls[0]?.[1]).toBe("video/mp4");
138+expect(saveMediaBufferCall()[1]).toBe("video/mp4");
131139});
132140133141it("propagates media store failures", async () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。