返回 DeepSeek-Reasonix
cost-rate-band.test.ts
根目录 / desktop / frontend / src / __tests__ / cost-rate-band.test.ts
1 import assert from "node:assert/strict";
2 import { describe, it } from "node:test";
3 import { mergeRateBand, normalizeRateBand, rateBandLabel } from "../lib/costRateBand";
4
5 describe("cost rate band aggregation", () => {
6 it("keeps a uniform band and marks crossings mixed", () => {
7 assert.equal(mergeRateBand(undefined, "peak"), "peak");
8 assert.equal(mergeRateBand("peak", "peak"), "peak");
9 assert.equal(mergeRateBand("peak", "off_peak"), "mixed");
10 assert.equal(mergeRateBand("mixed", "peak"), "mixed");
11 });
12
13 it("does not declare a band after an unknown or legacy quote", () => {
14 assert.equal(mergeRateBand(undefined, undefined), "unknown");
15 assert.equal(mergeRateBand("peak", undefined), "unknown");
16 assert.equal(mergeRateBand("unknown", "off_peak"), "unknown");
17 assert.equal(normalizeRateBand("future_band"), undefined);
18 });
19
20 it("uses a compact, unambiguous label for the mixed-rate badge", () => {
21 const t = (key: string) => key === "billing.rateBand.mixed" ? "峰谷混合" : key;
22 assert.equal(rateBandLabel("mixed", t), "峰谷混合");
23 assert.equal(rateBandLabel("future_band", t), undefined);
24 });
25 });
26
26 lines TYPESCRIPT