import { formatNumber } from "./formatNumber";
describe("formatMoney", () => {
test("must return empty string", () => {
expect(formatNumber(0, { zeroAsBlank: true })).toBe("");
expect(formatNumber("0", { zeroAsBlank: true })).toBe("");
expect(formatNumber(null)).toBe("");
expect(formatNumber(undefined)).toBe("");
expect(formatNumber("")).toBe("");
});
test("must return zero", () => {
expect(formatNumber(0)).toBe("0.00");
expect(formatNumber(0, { decimalPlaces: 0 })).toBe("0");
expect(formatNumber("0", { decimalSeparator: "," })).toBe("0,00");
});
test("must return correct values", () => {
expect(formatNumber(0.1)).toBe("0.10");
expect(formatNumber(1000222.1, { decimalPlaces: 4 })).toBe(
"1,000,222.1000",
);
expect(formatNumber(-1000222.1, { currencySymbol: "$" })).toBe(
"($1,000,222.10)",
);
expect(
formatNumber(-1000222.1, {
decimalSeparator: ",",
decimalPlaces: 3,
thousandsSeparator: ".",
currencySymbol: "$",
}),
).toBe("($1.000.222,100)");
expect(formatNumber("1500.02")).toBe("1,500.02");
expect(formatNumber("1700500.02")).toBe("1,700,500.02");
expect(formatNumber("-1700500.02")).toBe("(1,700,500.02)");
});
test("must return add class name", () => {
expect(
formatNumber(5, { negativeClass: "neg", positiveClass: "pos" }),
).toBe('5.00');
expect(
formatNumber(-5, { negativeClass: "neg", positiveClass: "pos" }),
).toBe('(5.00)');
expect(
formatNumber(-5, {
negativeClass: "neg",
noHTML: true,
positiveClass: "pos",
}),
).toBe("(5.00)");
});
});