refactor(auth-profiles): reuse cooldown timestamp resolver

This commit is contained in:
Peter Steinberger
2026-02-18 17:13:47 +00:00
parent 818419b4c4
commit 28d49b8d44
3 changed files with 25 additions and 16 deletions

View File

@@ -1,6 +1,10 @@
import { describe, expect, it } from "vitest";
import type { AuthProfileStore } from "./types.js";
import { clearExpiredCooldowns, isProfileInCooldown } from "./usage.js";
import {
clearExpiredCooldowns,
isProfileInCooldown,
resolveProfileUnusableUntil,
} from "./usage.js";
function makeStore(usageStats: AuthProfileStore["usageStats"]): AuthProfileStore {
return {
@@ -13,6 +17,18 @@ function makeStore(usageStats: AuthProfileStore["usageStats"]): AuthProfileStore
};
}
describe("resolveProfileUnusableUntil", () => {
it("returns null when both values are missing or invalid", () => {
expect(resolveProfileUnusableUntil({})).toBeNull();
expect(resolveProfileUnusableUntil({ cooldownUntil: 0, disabledUntil: Number.NaN })).toBeNull();
});
it("returns the latest active timestamp", () => {
expect(resolveProfileUnusableUntil({ cooldownUntil: 100, disabledUntil: 200 })).toBe(200);
expect(resolveProfileUnusableUntil({ cooldownUntil: 300 })).toBe(300);
});
});
// ---------------------------------------------------------------------------
// isProfileInCooldown
// ---------------------------------------------------------------------------