test: dedupe feishu signed webhook posts

This commit is contained in:
Peter Steinberger 2026-03-13 22:00:10 +00:00
parent 4d1fcc1df2
commit b213348665
1 changed files with 11 additions and 15 deletions

View File

@ -50,6 +50,14 @@ function encryptFeishuPayload(encryptKey: string, payload: Record<string, unknow
return Buffer.concat([iv, encrypted]).toString("base64"); return Buffer.concat([iv, encrypted]).toString("base64");
} }
async function postSignedPayload(url: string, payload: Record<string, unknown>) {
return await fetch(url, {
method: "POST",
headers: signFeishuPayload({ encryptKey: "encrypt_key", payload }),
body: JSON.stringify(payload),
});
}
afterEach(() => { afterEach(() => {
stopFeishuMonitor(); stopFeishuMonitor();
}); });
@ -143,11 +151,7 @@ describe("Feishu webhook signed-request e2e", () => {
monitorFeishuProvider, monitorFeishuProvider,
async (url) => { async (url) => {
const payload = { type: "url_verification", challenge: "challenge-token" }; const payload = { type: "url_verification", challenge: "challenge-token" };
const response = await fetch(url, { const response = await postSignedPayload(url, payload);
method: "POST",
headers: signFeishuPayload({ encryptKey: "encrypt_key", payload }),
body: JSON.stringify(payload),
});
expect(response.status).toBe(200); expect(response.status).toBe(200);
await expect(response.json()).resolves.toEqual({ challenge: "challenge-token" }); await expect(response.json()).resolves.toEqual({ challenge: "challenge-token" });
@ -172,11 +176,7 @@ describe("Feishu webhook signed-request e2e", () => {
header: { event_type: "unknown.event" }, header: { event_type: "unknown.event" },
event: {}, event: {},
}; };
const response = await fetch(url, { const response = await postSignedPayload(url, payload);
method: "POST",
headers: signFeishuPayload({ encryptKey: "encrypt_key", payload }),
body: JSON.stringify(payload),
});
expect(response.status).toBe(200); expect(response.status).toBe(200);
expect(await response.text()).toContain("no unknown.event event handle"); expect(await response.text()).toContain("no unknown.event event handle");
@ -202,11 +202,7 @@ describe("Feishu webhook signed-request e2e", () => {
challenge: "encrypted-challenge-token", challenge: "encrypted-challenge-token",
}), }),
}; };
const response = await fetch(url, { const response = await postSignedPayload(url, payload);
method: "POST",
headers: signFeishuPayload({ encryptKey: "encrypt_key", payload }),
body: JSON.stringify(payload),
});
expect(response.status).toBe(200); expect(response.status).toBe(200);
await expect(response.json()).resolves.toEqual({ await expect(response.json()).resolves.toEqual({