mirror of
https://github.com/harivansh-afk/clanker-agent.git
synced 2026-04-15 03:00:44 +00:00
- Copy all pi-mono source into apps/companion-os/ - Update Dockerfile to COPY pre-built binary instead of downloading from GitHub Releases - Update deploy-staging.yml to build pi from source (bun compile) before Docker build - Add apps/companion-os/** to path triggers - No more cross-repo dispatch needed Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
57 lines
1.7 KiB
TypeScript
57 lines
1.7 KiB
TypeScript
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
import { extractRetryDelay } from "../src/providers/google-gemini-cli.js";
|
|
|
|
describe("extractRetryDelay header parsing", () => {
|
|
afterEach(() => {
|
|
vi.useRealTimers();
|
|
});
|
|
|
|
it("prefers Retry-After seconds header", () => {
|
|
vi.useFakeTimers();
|
|
vi.setSystemTime(new Date("2025-01-01T00:00:00Z"));
|
|
|
|
const response = new Response("", { headers: { "Retry-After": "5" } });
|
|
const delay = extractRetryDelay("Please retry in 1s", response);
|
|
|
|
expect(delay).toBe(6000);
|
|
});
|
|
|
|
it("parses Retry-After HTTP date header", () => {
|
|
vi.useFakeTimers();
|
|
const now = new Date("2025-01-01T00:00:00Z");
|
|
vi.setSystemTime(now);
|
|
|
|
const retryAt = new Date(now.getTime() + 12000).toUTCString();
|
|
const response = new Response("", { headers: { "Retry-After": retryAt } });
|
|
const delay = extractRetryDelay("", response);
|
|
|
|
expect(delay).toBe(13000);
|
|
});
|
|
|
|
it("parses x-ratelimit-reset header", () => {
|
|
vi.useFakeTimers();
|
|
const now = new Date("2025-01-01T00:00:00Z");
|
|
vi.setSystemTime(now);
|
|
|
|
const resetAtMs = now.getTime() + 20000;
|
|
const resetSeconds = Math.floor(resetAtMs / 1000).toString();
|
|
const response = new Response("", {
|
|
headers: { "x-ratelimit-reset": resetSeconds },
|
|
});
|
|
const delay = extractRetryDelay("", response);
|
|
|
|
expect(delay).toBe(21000);
|
|
});
|
|
|
|
it("parses x-ratelimit-reset-after header", () => {
|
|
vi.useFakeTimers();
|
|
vi.setSystemTime(new Date("2025-01-01T00:00:00Z"));
|
|
|
|
const response = new Response("", {
|
|
headers: { "x-ratelimit-reset-after": "30" },
|
|
});
|
|
const delay = extractRetryDelay("", response);
|
|
|
|
expect(delay).toBe(31000);
|
|
});
|
|
});
|