| 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 |