copilot-api / tests /copilot-rate-limit.test.ts
imspsycho's picture
Initial upload from Google Colab
98c9143 verified
Raw
History Blame Contribute Delete
1.96 kB
import { expect, test } from "bun:test"
import {
getCopilotRateLimitUsageFromSnapshots,
getCopilotRateLimitUsage,
parseCopilotRateLimitHeader,
} from "../src/lib/copilot-rate-limit"
test("parseCopilotRateLimitHeader extracts remaining quota and reset time", () => {
expect(
parseCopilotRateLimitHeader(
"ent=0&ov=0.0&ovPerm=false&rem=99.6&rst=2026-04-22T14%3A30%3A56Z",
),
).toEqual({
remaining: "99.6",
resetAt: "2026-04-22T14:30:56Z",
})
})
test("getCopilotRateLimitUsage reads session and weekly headers", () => {
const headers = new Headers({
"x-usage-ratelimit-session":
"ent=0&ov=0.0&ovPerm=false&rem=99.6&rst=2026-04-22T14%3A30%3A56Z",
"x-usage-ratelimit-weekly":
"ent=0&ov=0.0&ovPerm=false&rem=95.9&rst=2026-04-27T00%3A00%3A00Z",
})
expect(getCopilotRateLimitUsage(headers, "session")).toEqual({
type: "session",
remaining: "99.6",
resetAt: "2026-04-22T14:30:56Z",
})
expect(getCopilotRateLimitUsage(headers, "weekly")).toEqual({
type: "weekly",
remaining: "95.9",
resetAt: "2026-04-27T00:00:00Z",
})
})
test("getCopilotRateLimitUsageFromSnapshots reads websocket response completed snapshots", () => {
const snapshots = {
"5Hour-Session-RateLimits": {
entitlement: "0",
overage_count: 0,
overage_permitted: false,
percent_remaining: 99.6,
reset_date: "2026-05-13T17:54:08Z",
},
"Weekly-Session-RateLimits": {
entitlement: "0",
overage_count: 0,
overage_permitted: false,
percent_remaining: 94.2,
reset_date: "2026-05-18T00:00:00Z",
},
}
expect(getCopilotRateLimitUsageFromSnapshots(snapshots, "session")).toEqual({
remaining: "99.6",
resetAt: "2026-05-13T17:54:08Z",
type: "session",
})
expect(getCopilotRateLimitUsageFromSnapshots(snapshots, "weekly")).toEqual({
remaining: "94.2",
resetAt: "2026-05-18T00:00:00Z",
type: "weekly",
})
})