22 lines
1 KiB
TypeScript
22 lines
1 KiB
TypeScript
|
|
import test from "node:test";
|
||
|
|
import assert from "node:assert/strict";
|
||
|
|
import { dueDate, supplierKey } from "./supplier";
|
||
|
|
|
||
|
|
test("the same supplier typed two ways folds to one key", () => {
|
||
|
|
assert.equal(supplierKey("Lube Force Traders cc"), supplierKey("LUBE FORCE TRADERS"));
|
||
|
|
assert.equal(supplierKey("PERCA SERVICES (PTY) LTD"), supplierKey("Perca Services"));
|
||
|
|
assert.equal(supplierKey("Hydra - Lab CC"), supplierKey("hydra lab"));
|
||
|
|
});
|
||
|
|
test("different suppliers stay different", () => {
|
||
|
|
assert.notEqual(supplierKey("Your Tyre Shop"), supplierKey("Tyre Shop"));
|
||
|
|
assert.notEqual(supplierKey("Jose Electrical"), supplierKey("Jose Plumbing"));
|
||
|
|
});
|
||
|
|
test("account purchases fall due PO date + terms; cash and unknown never do", () => {
|
||
|
|
assert.equal(dueDate("2026-10-07", "30"), "2026-11-06");
|
||
|
|
assert.equal(dueDate("2026-10-07", "60"), "2026-12-06");
|
||
|
|
assert.equal(dueDate("2026-12-20", "30"), "2027-01-19");
|
||
|
|
assert.equal(dueDate("2026-10-07", "cash"), "");
|
||
|
|
assert.equal(dueDate("2026-10-07", ""), "");
|
||
|
|
assert.equal(dueDate("nonsense", "30"), "");
|
||
|
|
});
|