test(discord): align rate limit error mock with carbon

This commit is contained in:
Muhammed Mukhthar CM 2026-03-14 03:58:41 +00:00
parent f1d9fcd407
commit a4a5fdcd98
1 changed files with 19 additions and 17 deletions

View File

@ -139,11 +139,13 @@ vi.mock("@buape/carbon", () => {
retryAfter: number; retryAfter: number;
scope: string | null; scope: string | null;
bucket: string | null; bucket: string | null;
constructor(response: Response, body: { message: string; retry_after: number; code?: number }) { constructor(
response: Response,
body: { message: string; retry_after: number; global: boolean },
) {
super(body.message); super(body.message);
this.discordCode = body.code;
this.retryAfter = body.retry_after; this.retryAfter = body.retry_after;
this.scope = response.headers.get("X-RateLimit-Scope"); this.scope = body.global ? "global" : response.headers.get("X-RateLimit-Scope");
this.bucket = response.headers.get("X-RateLimit-Bucket"); this.bucket = response.headers.get("X-RateLimit-Bucket");
} }
} }
@ -778,22 +780,22 @@ describe("monitorDiscordProvider", () => {
const { RateLimitError } = await import("@buape/carbon"); const { RateLimitError } = await import("@buape/carbon");
const { monitorDiscordProvider } = await import("./provider.js"); const { monitorDiscordProvider } = await import("./provider.js");
const runtime = baseRuntime(); const runtime = baseRuntime();
clientHandleDeployRequestMock.mockRejectedValueOnce( const rateLimitError = new RateLimitError(
new RateLimitError( new Response(null, {
new Response(null, { status: 429,
status: 429, headers: {
headers: { "X-RateLimit-Scope": "shared",
"X-RateLimit-Scope": "shared", "X-RateLimit-Bucket": "bucket-1",
"X-RateLimit-Bucket": "bucket-1",
},
}),
{
message: "Max number of daily application command creates has been reached (200)",
retry_after: 193.632,
code: 30034,
}, },
), }),
{
message: "Max number of daily application command creates has been reached (200)",
retry_after: 193.632,
global: false,
},
); );
rateLimitError.discordCode = 30034;
clientHandleDeployRequestMock.mockRejectedValueOnce(rateLimitError);
await monitorDiscordProvider({ await monitorDiscordProvider({
config: baseConfig(), config: baseConfig(),