From e895d4d1a801af04d86cdc2da0991d6bf57c5e56 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 13 Mar 2026 18:56:37 +0000 Subject: [PATCH] test: tighten shared fetch helper coverage --- src/infra/provider-usage.fetch.shared.test.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/infra/provider-usage.fetch.shared.test.ts b/src/infra/provider-usage.fetch.shared.test.ts index d41c7e079a1..213a5a3eb2d 100644 --- a/src/infra/provider-usage.fetch.shared.test.ts +++ b/src/infra/provider-usage.fetch.shared.test.ts @@ -2,6 +2,7 @@ import { describe, expect, it } from "vitest"; import { buildUsageErrorSnapshot, buildUsageHttpErrorSnapshot, + parseFiniteNumber, } from "./provider-usage.fetch.shared.js"; describe("provider usage fetch shared helpers", () => { @@ -14,6 +15,14 @@ describe("provider usage fetch shared helpers", () => { }); }); + it.each([ + { value: 12, expected: 12 }, + { value: "12.5", expected: 12.5 }, + { value: "not-a-number", expected: undefined }, + ])("parses finite numbers for %j", ({ value, expected }) => { + expect(parseFiniteNumber(value)).toBe(expected); + }); + it("maps configured status codes to token expired", () => { const snapshot = buildUsageHttpErrorSnapshot({ provider: "openai-codex", @@ -35,4 +44,14 @@ describe("provider usage fetch shared helpers", () => { expect(snapshot.error).toBe("HTTP 403: missing scope"); }); + + it("omits empty HTTP error message suffixes", () => { + const snapshot = buildUsageHttpErrorSnapshot({ + provider: "anthropic", + status: 429, + message: " ", + }); + + expect(snapshot.error).toBe("HTTP 429"); + }); });