mirror of https://github.com/openclaw/openclaw.git
test: dedupe discord retry delivery setup
This commit is contained in:
parent
3eb039c554
commit
ee80b4be69
|
|
@ -27,6 +27,22 @@ describe("deliverDiscordReply", () => {
|
|||
const cfg = {
|
||||
channels: { discord: { token: "test-token" } },
|
||||
} as OpenClawConfig;
|
||||
const expectBotSendRetrySuccess = async (status: number, message: string) => {
|
||||
sendMessageDiscordMock
|
||||
.mockRejectedValueOnce(Object.assign(new Error(message), { status }))
|
||||
.mockResolvedValueOnce({ messageId: "msg-1", channelId: "channel-1" });
|
||||
|
||||
await deliverDiscordReply({
|
||||
replies: [{ text: "retry me" }],
|
||||
target: "channel:123",
|
||||
token: "token",
|
||||
runtime,
|
||||
cfg,
|
||||
textLimit: 2000,
|
||||
});
|
||||
|
||||
expect(sendMessageDiscordMock).toHaveBeenCalledTimes(2);
|
||||
};
|
||||
const createBoundThreadBindings = async (
|
||||
overrides: Partial<{
|
||||
threadId: string;
|
||||
|
|
@ -319,39 +335,11 @@ describe("deliverDiscordReply", () => {
|
|||
});
|
||||
|
||||
it("retries bot send on 429 rate limit then succeeds", async () => {
|
||||
const rateLimitErr = Object.assign(new Error("rate limited"), { status: 429 });
|
||||
sendMessageDiscordMock
|
||||
.mockRejectedValueOnce(rateLimitErr)
|
||||
.mockResolvedValueOnce({ messageId: "msg-1", channelId: "channel-1" });
|
||||
|
||||
await deliverDiscordReply({
|
||||
replies: [{ text: "retry me" }],
|
||||
target: "channel:123",
|
||||
token: "token",
|
||||
runtime,
|
||||
cfg,
|
||||
textLimit: 2000,
|
||||
});
|
||||
|
||||
expect(sendMessageDiscordMock).toHaveBeenCalledTimes(2);
|
||||
await expectBotSendRetrySuccess(429, "rate limited");
|
||||
});
|
||||
|
||||
it("retries bot send on 500 server error then succeeds", async () => {
|
||||
const serverErr = Object.assign(new Error("internal"), { status: 500 });
|
||||
sendMessageDiscordMock
|
||||
.mockRejectedValueOnce(serverErr)
|
||||
.mockResolvedValueOnce({ messageId: "msg-1", channelId: "channel-1" });
|
||||
|
||||
await deliverDiscordReply({
|
||||
replies: [{ text: "retry me" }],
|
||||
target: "channel:123",
|
||||
token: "token",
|
||||
runtime,
|
||||
cfg,
|
||||
textLimit: 2000,
|
||||
});
|
||||
|
||||
expect(sendMessageDiscordMock).toHaveBeenCalledTimes(2);
|
||||
await expectBotSendRetrySuccess(500, "internal");
|
||||
});
|
||||
|
||||
it("does not retry on 4xx client errors", async () => {
|
||||
|
|
|
|||
Loading…
Reference in New Issue