openskynet / src /channels /plugins /outbound /imessage.test.ts
Darochin's picture
Mirror OpenSkyNet workspace snapshot from Git HEAD
fc93158 verified
import { describe, expect, it, vi } from "vitest";
import type { OpenClawConfig } from "../../../config/config.js";
import { imessageOutbound } from "./imessage.js";
describe("imessageOutbound", () => {
const cfg: OpenClawConfig = {
channels: {
imessage: {
mediaMaxMb: 2,
},
},
};
it("passes replyToId through sendText", async () => {
const sendIMessage = vi.fn().mockResolvedValue({ messageId: "text-1" });
const sendText = imessageOutbound.sendText;
expect(sendText).toBeDefined();
const result = await sendText!({
cfg,
to: "chat_id:123",
text: "hello",
accountId: "default",
replyToId: "msg-123",
deps: { sendIMessage },
});
expect(sendIMessage).toHaveBeenCalledWith(
"chat_id:123",
"hello",
expect.objectContaining({
replyToId: "msg-123",
accountId: "default",
maxBytes: 2 * 1024 * 1024,
}),
);
expect(result).toEqual({ channel: "imessage", messageId: "text-1" });
});
it("passes replyToId through sendMedia", async () => {
const sendIMessage = vi.fn().mockResolvedValue({ messageId: "media-1" });
const sendMedia = imessageOutbound.sendMedia;
expect(sendMedia).toBeDefined();
const result = await sendMedia!({
cfg,
to: "chat_id:123",
text: "caption",
mediaUrl: "https://example.com/file.jpg",
mediaLocalRoots: ["/tmp"],
accountId: "acct-1",
replyToId: "msg-456",
deps: { sendIMessage },
});
expect(sendIMessage).toHaveBeenCalledWith(
"chat_id:123",
"caption",
expect.objectContaining({
mediaUrl: "https://example.com/file.jpg",
mediaLocalRoots: ["/tmp"],
replyToId: "msg-456",
accountId: "acct-1",
maxBytes: 2 * 1024 * 1024,
}),
);
expect(result).toEqual({ channel: "imessage", messageId: "media-1" });
});
});