import { describe, expect, it } from "vitest"; import { normalizeDecimal } from "./format-decimal"; describe("normalizeDecimal", () => { it("strips trailing zeros from DB decimal strings", () => { expect(normalizeDecimal("10.000000")).toBe("10"); expect(normalizeDecimal("1500.500000")).toBe("1500.5"); expect(normalizeDecimal("100.010000")).toBe("100.01"); expect(normalizeDecimal("0.000000")).toBe("0"); }); it("removes binary-float artifacts by rounding", () => { expect(normalizeDecimal(1500.5 - 500.3)).toBe("1000.2"); expect(normalizeDecimal(0.1 + 0.2)).toBe("0.3"); }); it("leaves clean values untouched", () => { expect(normalizeDecimal("10")).toBe("10"); expect(normalizeDecimal(10.25)).toBe("10.25"); expect(normalizeDecimal("0")).toBe("0"); }); it("returns empty string for null/undefined/NaN", () => { expect(normalizeDecimal(null)).toBe(""); expect(normalizeDecimal(undefined)).toBe(""); expect(normalizeDecimal("not-a-number")).toBe(""); }); });