forked from EduCraft/curriculum-project-hub
fix: reply to Feishu trigger messages
This commit is contained in:
@@ -34,6 +34,23 @@ describe("Feishu client helpers", () => {
|
||||
await expect(sendTextMessage(rt, "chat-1", "hello")).resolves.toBe("message-1");
|
||||
});
|
||||
|
||||
it("replies to a message without enabling Feishu topic mode", async () => {
|
||||
const messageCreate = vi.fn();
|
||||
const messageReply = vi.fn(async () => ({ data: { message_id: "reply-1" } }));
|
||||
const rt = mockRuntime({ fileCreate: vi.fn(), messageCreate, messageReply });
|
||||
|
||||
await expect(sendTextMessage(rt, "chat-1", "hello", { replyToMessageId: "m-trigger" })).resolves.toBe("reply-1");
|
||||
|
||||
expect(messageCreate).not.toHaveBeenCalled();
|
||||
expect(messageReply).toHaveBeenCalledWith({
|
||||
path: { message_id: "m-trigger" },
|
||||
data: {
|
||||
msg_type: "text",
|
||||
content: JSON.stringify({ text: "hello" }),
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
it("sends long text in chunks and returns the last successful message id", async () => {
|
||||
let messageNumber = 0;
|
||||
const messageCreate = vi.fn(async () => ({ data: { message_id: `message-${++messageNumber}` } }));
|
||||
@@ -70,6 +87,7 @@ describe("Feishu client helpers", () => {
|
||||
function mockRuntime(options: {
|
||||
readonly fileCreate: (payload: unknown) => Promise<unknown>;
|
||||
readonly messageCreate: (payload: unknown) => Promise<unknown>;
|
||||
readonly messageReply?: (payload: unknown) => Promise<unknown>;
|
||||
readonly contactBasicBatch?: (payload: unknown) => Promise<unknown>;
|
||||
readonly request?: (payload: unknown) => Promise<unknown>;
|
||||
}): FeishuRuntime {
|
||||
@@ -86,7 +104,10 @@ function mockRuntime(options: {
|
||||
im: {
|
||||
v1: {
|
||||
file: { create: options.fileCreate },
|
||||
message: { create: options.messageCreate },
|
||||
message: {
|
||||
create: options.messageCreate,
|
||||
reply: options.messageReply ?? vi.fn(async () => ({ data: { message_id: "reply-1" } })),
|
||||
},
|
||||
},
|
||||
},
|
||||
} as unknown as FeishuRuntime["client"],
|
||||
|
||||
Reference in New Issue
Block a user