g1t/apps/sudo/app/lib/costs.test.ts

152 lines6,349 bytesCodeBlame

Pick any line to see why it is the way it is: the commit, the pull request and issue it came from, and what the agent was thinking.

Git storage hardened, pages in tens of milliseconds, honest security alerts, and costs reconciled daily1import assert from "node:assert/strict";
2import { test } from "node:test";
3
Spend caps: a monthly budget for comped workspaces and a daily breaker on what g1t pays4import type { CostDay, SpendCaps } from "@g1t/contracts";
Git storage hardened, pages in tens of milliseconds, honest security alerts, and costs reconciled daily5
6import {
7 daySeries,
8 daysBetween,
9 marginPercent,
10 marginTone,
11 parseBucket,
12 parseCostSettings,
13 parseMapping,
14 parseRange,
15 percentLabel,
Spend caps: a monthly budget for comped workspaces and a daily breaker on what g1t pays16 spendBanner,
17 spendRows,
Git storage hardened, pages in tens of milliseconds, honest security alerts, and costs reconciled daily18 unitDollars,
19} from "./costs.ts";
20
21const day = (d: string, bucket: string, cf: number, own: number, value: number, cash: number): CostDay => ({
22 day: d,
23 bucket,
24 cfCostMicros: cf,
25 ownCostMicros: own,
26 valueMicros: value,
27 cashMicros: cash,
28});
29
30test("every day of the range is there, even an empty one", () => {
31 assert.deepEqual(daysBetween("2026-09-29", "2026-10-02"), ["2026-09-29", "2026-09-30", "2026-10-01", "2026-10-02"]);
32 assert.deepEqual(daysBetween("2026-10-02", "2026-10-01"), []);
33});
34
35test("all of g1t is money in against every cost; a product is its value against its cost", () => {
36 const rows = [
37 day("2026-10-01", "sandboxes", 2_000_000, 1_900_000, 2_400_000, 1_000_000),
38 day("2026-10-01", "platform", 500_000, 0, 20_000_000, 20_000_000),
39 // Models: no Cloudflare bill, g1t's own cost.
40 day("2026-10-01", "models", 0, 100_000, 120_000, 120_000),
41 ];
42 const all = daySeries(rows, "2026-10-01", "2026-10-02", null);
43 assert.deepEqual(all, [
44 { day: "2026-10-01", revenueMicros: 21_120_000, costMicros: 2_600_000 },
45 { day: "2026-10-02", revenueMicros: 0, costMicros: 0 },
46 ]);
47 const sandboxes = daySeries(rows, "2026-10-01", "2026-10-01", "sandboxes");
48 assert.deepEqual(sandboxes, [{ day: "2026-10-01", revenueMicros: 2_400_000, costMicros: 2_000_000 }]);
49});
50
51test("margins read against the floor", () => {
52 assert.equal(marginPercent(1_200_000, 1_000_000)?.toFixed(2), "16.67");
53 assert.equal(marginPercent(0, 10), null);
54 assert.equal(marginTone(-3, 10), "danger");
55 assert.equal(marginTone(12, 10), "warn");
56 assert.equal(marginTone(16.7, 10), "mint");
57 assert.equal(marginTone(null, 10), undefined);
58 assert.equal(percentLabel(-4), "−4.0%");
59 assert.equal(percentLabel(12.34, { signed: true }), "+12.3%");
60 assert.equal(percentLabel(null), "—");
61});
62
63test("unit costs keep the places they need", () => {
64 assert.equal(unitDollars(150_000), "$0.150");
65 assert.equal(unitDollars(16.44), "$0.0000164");
66 assert.equal(unitDollars(2_500_000), "$2.50");
67 assert.equal(unitDollars(0), "$0");
68});
69
70test("the range and product come from the address, within bounds", () => {
71 assert.equal(parseRange("7"), 7);
72 assert.equal(parseRange("365"), 30);
73 assert.equal(parseRange(null), 30);
74 assert.equal(parseBucket("git", ["git", "sandboxes"]), "git");
75 assert.equal(parseBucket("nope", ["git"]), null);
76});
77
78const form = (entries: Record<string, string>) => {
79 const data = new FormData();
80 for (const [key, value] of Object.entries(entries)) data.set(key, value);
81 return data;
82};
83
84test("the guardrails form is checked", () => {
85 const good = parseCostSettings(
86 form({
87 autoApply: "on",
88 autoApplyPercent: "25",
89 noticeDays: "14",
90 marginFloorPercent: "10",
91 alertDays: "3",
92 anomalyFactor: "1",
93 minDailyCost: "0.10",
94 anomalyFloor: "1",
95 }),
96 );
97 assert.ok(good.ok);
98 assert.equal(good.ok && good.value.minDailyCostMicros, 100_000);
99 assert.equal(good.ok && good.value.autoApply, true);
100 const off = parseCostSettings(form({ autoApplyPercent: "25", noticeDays: "14", marginFloorPercent: "10", alertDays: "3", anomalyFactor: "1", minDailyCost: "0", anomalyFloor: "1" }));
101 assert.ok(off.ok && !off.value.autoApply);
102 assert.equal(parseCostSettings(form({ autoApplyPercent: "250" })).ok, false);
103 assert.equal(parseCostSettings(form({ autoApplyPercent: "25", noticeDays: "1.5" })).ok, false);
104});
105
106test("a mapping names Cloudflare's product and meter and one of g1t's products", () => {
107 const mapped = parseMapping(form({ product: "Artifacts", meter: "", bucket: "git", priceMeter: "git_operations", ownMeter: "git_operations", scaleToOwn: "on", driftPercent: "15" }));
108 assert.deepEqual(mapped, {
109 ok: true,
110 value: { product: "artifacts", meter: "*", bucket: "git", priceMeter: "git_operations", ownMeter: "git_operations", scaleToOwn: true, driftPercent: 15, note: "" },
111 });
112 assert.deepEqual(parseMapping(form({ product: "r2", meter: "class_a", remove: "1" })), { ok: true, value: { product: "r2", meter: "class_a", remove: true } });
113 assert.equal(parseMapping(form({ product: "r2", meter: "x y", bucket: "git" })).ok, false);
114 assert.equal(parseMapping(form({ product: "r2", meter: "*", bucket: "" })).ok, false);
115 assert.equal(parseMapping(form({ product: "r2", meter: "*", bucket: "git", driftPercent: "-1" })).ok, false);
116});
Spend caps: a monthly budget for comped workspaces and a daily breaker on what g1t pays117
118const caps = (over: Partial<SpendCaps> = {}): SpendCaps => ({
119 day: "2026-10-06",
120 month: "2026-10",
121 todayMicros: 20_000_000,
122 dailyCapMicros: 75_000_000,
123 tripped: false,
124 trippedAt: null,
125 liftedBy: null,
126 liftedAt: null,
127 liftNote: null,
128 monthBuckets: [
129 { bucket: "comped", title: "Comped (g1t's own)", micros: 40_000_000 },
130 { bucket: "trial", title: "Trial pool", micros: 5_000_000 },
131 ],
132 comped: [{ account: "ws_flagon-io", name: "flagon-io", usedMicros: 40_000_000, ceilingMicros: 150_000_000, defaultCeiling: true, level: 0 }],
133 freeTierMicros: 1_000_000,
134 fixedMonthlyMicros: 30_000_000,
135 revenueMicros: 0,
136 ...over,
137});
138
139test("the spend bar shows only when a cap stops work", () => {
140 assert.equal(spendBanner(caps()), null);
141 assert.ok((spendBanner(caps({ tripped: true, todayMicros: 80_000_000 })) ?? "").startsWith("The daily breaker is open ($80.00 of $75.00 today)"));
142 const usedUp = caps({ comped: [{ account: "ws_flagon-io", name: "flagon-io", usedMicros: 150_000_000, ceilingMicros: 150_000_000, defaultCeiling: true, level: 100 }] });
143 assert.ok((spendBanner(usedUp) ?? "").startsWith("Flagon-io used its $150.00 monthly budget"));
144 // No budget set to zero is ever "used up".
145 assert.equal(spendBanner(caps({ comped: [{ account: "a", name: "a", usedMicros: 9, ceilingMicros: 0, defaultCeiling: false, level: 0 }] })), null);
146});
147
148test("what g1t paid this month adds every bucket, the free tier and subscriptions", () => {
149 const { rows, totalMicros } = spendRows(caps());
150 assert.deepEqual(rows.map((r) => r.key), ["comped", "trial", "free", "fixed"]);
151 assert.equal(totalMicros, 76_000_000);
152});