Files
lucia-frontend/tests/unit/module/shortScaleNumber.test.js
2026-03-08 12:11:57 +08:00

41 lines
1.2 KiB
JavaScript

// The Lucia project.
// Copyright 2026-2026 DSP, inc. All rights reserved.
// Authors:
// imacat.yang@dsp.im (imacat), 2026/03/05
import { describe, it, expect } from "vitest";
import shortScaleNumber from "@/module/shortScaleNumber.js";
describe("shortScaleNumber", () => {
it("returns small numbers without abbreviation", () => {
expect(shortScaleNumber(1).trim()).toBe("1");
expect(shortScaleNumber(999).trim()).toBe("999");
});
it("abbreviates thousands as k", () => {
expect(shortScaleNumber(1000).trim()).toBe("1k");
expect(shortScaleNumber(1500).trim()).toBe("1.5k");
});
it("abbreviates millions as m", () => {
expect(shortScaleNumber(1000000).trim()).toBe("1m");
});
it("abbreviates billions as b", () => {
expect(shortScaleNumber(1000000000).trim()).toBe("1b");
});
it("abbreviates trillions as t", () => {
expect(shortScaleNumber(1000000000000).trim()).toBe("1t");
});
it("rounds up using Math.ceil", () => {
// 1234 -> 1.234k -> ceil(12.34)/10 = 1.3k
expect(shortScaleNumber(1234).trim()).toBe("1.3k");
});
it("handles zero", () => {
expect(shortScaleNumber(0).trim()).toBe("0");
});
});