Spaces:
Running
Running
| 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", | |
| }) | |
| }) | |