First Commit. Duplicate bunext-sqlite preset
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import { expect, test } from "bun:test";
|
||||
import {
|
||||
formatNaira,
|
||||
nairaToKobo,
|
||||
sumInvoiceItemsKobo,
|
||||
} from "./money";
|
||||
|
||||
test("formatNaira formats kobo amounts", () => {
|
||||
expect(formatNaira(150050)).toBe("₦1,500.50");
|
||||
expect(formatNaira(100)).toBe("₦1.00");
|
||||
expect(formatNaira(0)).toBe("₦0.00");
|
||||
expect(formatNaira(500000000)).toBe("₦5,000,000.00");
|
||||
expect(formatNaira(1)).toBe("₦0.01");
|
||||
expect(formatNaira("250000")).toBe("₦2,500.00");
|
||||
});
|
||||
|
||||
test("formatNaira handles strings, undefined and negative", () => {
|
||||
expect(formatNaira(undefined)).toBe("₦0.00");
|
||||
expect(formatNaira(null)).toBe("₦0.00");
|
||||
expect(formatNaira(1000)).toBe("₦10.00");
|
||||
expect(formatNaira(-5050)).toBe("-₦50.50");
|
||||
});
|
||||
|
||||
test("nairaToKobo parses naira strings", () => {
|
||||
expect(nairaToKobo("₦1,500.50")).toBe(150050);
|
||||
expect(nairaToKobo("1500")).toBe(150000);
|
||||
expect(nairaToKobo("1,234.56")).toBe(123456);
|
||||
expect(nairaToKobo(undefined)).toBe(0);
|
||||
expect(nairaToKobo("")).toBe(0);
|
||||
expect(nairaToKobo("abc")).toBe(0);
|
||||
});
|
||||
|
||||
test("sumInvoiceItemsKobo totals line items", () => {
|
||||
const items = [
|
||||
{ quantity: 2, unit_price_kobo: 5000 }, // ₦50.00 x2
|
||||
{ quantity: 1, unit_price_kobo: 150000 }, // ₦1,500.00
|
||||
{ quantity: "", unit_price_kobo: "" },
|
||||
];
|
||||
|
||||
expect(sumInvoiceItemsKobo(items)).toBe(160000);
|
||||
expect(sumInvoiceItemsKobo([])).toBe(0);
|
||||
});
|
||||
Reference in New Issue
Block a user