import { describe, expect, it } from "vitest"; import { formatPaise, paiseToInput, parseRupeesToPaise } from "./money"; describe("money", () => { it("parses typed amounts to exact paise", () => { expect(parseRupeesToPaise("1250.5")).toBe(125050); expect(parseRupeesToPaise("1,25,000")).toBe(12500000); expect(parseRupeesToPaise("₹ 99.99")).toBe(9999); expect(parseRupeesToPaise("0.29")).toBe(29); expect(parseRupeesToPaise("19.9")).toBe(1990); expect(parseRupeesToPaise("5.")).toBe(500); expect(parseRupeesToPaise("")).toBe(0); }); it("rejects non-amounts", () => { for (const bad of ["abc", "-5", "1.234", "1e3", "1.2.3", ".5"]) expect(parseRupeesToPaise(bad)).toBeNull(); expect(parseRupeesToPaise("99999999999999999999")).toBeNull(); }); it("formats", () => { expect(paiseToInput(123450)).toBe("1234.50"); expect(paiseToInput(5)).toBe("0.05"); expect(formatPaise(12500000)).toBe("₹1,25,000.00"); }); });