From 25e15eb004a6f5facc57f6adb6bfcfb40b85bdd2 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Wed, 11 Mar 2026 17:53:26 +0900 Subject: [PATCH] Add retry status helper tests Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- src/shared/retry-status-utils.test.ts | 42 +++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/shared/retry-status-utils.test.ts diff --git a/src/shared/retry-status-utils.test.ts b/src/shared/retry-status-utils.test.ts new file mode 100644 index 000000000..beb0b934a --- /dev/null +++ b/src/shared/retry-status-utils.test.ts @@ -0,0 +1,42 @@ +declare const require: (name: string) => any +const { describe, expect, test } = require("bun:test") + +import { extractRetryAttempt, extractRetryStatusModel, normalizeRetryStatusMessage } from "./retry-status-utils" + +describe("retry-status-utils", () => { + test("extracts retry attempt from explicit status attempt", () => { + //#given + const attempt = 6 + + //#when + const result = extractRetryAttempt(attempt, "The usage limit has been reached [retrying in 27s attempt #6]") + + //#then + expect(result).toBe(6) + }) + + test("extracts retry model from cooldown status text", () => { + //#given + const message = "All credentials for model claude-opus-4-6 are cooling down [retrying in 7m 56s attempt #1]" + + //#when + const result = extractRetryStatusModel(message) + + //#then + expect(result).toBe("claude-opus-4-6") + }) + + test("normalizes countdown jitter to a stable cooldown class", () => { + //#given + const firstMessage = "All credentials for model claude-opus-4-6 are cooling down [retrying in 7m 56s attempt #1]" + const secondMessage = "All credentials for model claude-opus-4-6 are cooling down [retrying in 7m 55s attempt #1]" + + //#when + const firstResult = normalizeRetryStatusMessage(firstMessage) + const secondResult = normalizeRetryStatusMessage(secondMessage) + + //#then + expect(firstResult).toBe("cooldown") + expect(secondResult).toBe("cooldown") + }) +})