20 lines
796 B
TypeScript
20 lines
796 B
TypeScript
import { describe, it, expect } from "vitest";
|
|
import { keypadReduce, withCommission } from "./amount";
|
|
|
|
describe("amount keypad", () => {
|
|
it("appends digits, ignores leading zero, caps length", () => {
|
|
expect(keypadReduce("0", "5")).toBe("5");
|
|
expect(keypadReduce("100", "0")).toBe("1000");
|
|
expect(keypadReduce("", "0")).toBe("");
|
|
expect(keypadReduce("999999", "9")).toBe("999999");
|
|
});
|
|
it("backspace removes last digit", () => {
|
|
expect(keypadReduce("105", "back")).toBe("10");
|
|
expect(keypadReduce("", "back")).toBe("");
|
|
});
|
|
it("withCommission computes total at given rate", () => {
|
|
expect(withCommission(1000, 0.052)).toEqual({ commission: 52, total: 1052 });
|
|
expect(withCommission(333, 0.052)).toEqual({ commission: 17.32, total: 350.32 });
|
|
});
|
|
});
|