Skip to content
Source
Sign inSign up
Open History to see the last commit

usageProviders.test.ts

28 lines1.1 KB

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});