Open History to see the last commit
1import { describe, expect, it } from "vite-plus/test";
2
3import { rankProvidersByMetric } from "./usageProviders";
4
5describe("rankProvidersByMetric", () => {
6 it("ranks by the selected metric, highest first", () => {
7 const totals = [
8 { provider: "codex" as const, totalTokens: 100, costUsd: 20 },
9 { provider: "claude" as const, totalTokens: 200, costUsd: 10 },
10 ];
11 const providers = ["codex", "claude"] as const;
12
13 expect(rankProvidersByMetric(providers, totals, "tokens")).toEqual(["claude", "codex"]);
14 expect(rankProvidersByMetric(providers, totals, "cost")).toEqual(["codex", "claude"]);
15 });
16
17 it("keeps ties in input order without reordering the shared provider list", () => {
18 const totals = [
19 { provider: "codex" as const, totalTokens: 10, costUsd: 1 },
20 { provider: "claude" as const, totalTokens: 10, costUsd: 1 },
21 { provider: "grok" as const, totalTokens: 20, costUsd: 2 },
22 ];
23 const providers = ["claude", "codex", "grok"] as const;
24
25 expect(rankProvidersByMetric(providers, totals, "tokens")).toEqual(["grok", "claude", "codex"]);
26 expect(providers).toEqual(["claude", "codex", "grok"]);
27 });
28});