文件
hyb-oa/server/tests/unit/services/purchaseBudget.test.js
T

42 行
1.2 KiB
JavaScript

const {
summarizeBudgetLedgerByPool,
buildPurchaseBudgetValidationError,
} = require("../../../src/services/purchaseBudget");
describe("purchaseBudget service", () => {
it("summarizes reserve confirm release by pool", () => {
expect(
summarizeBudgetLedgerByPool([
{ budget_pool_id: "pool-1", kind: "reserve", amount: "120.00" },
{ budget_pool_id: "pool-1", kind: "confirm", amount: "120.00" },
{ budget_pool_id: "pool-1", kind: "release", amount: "20.00" },
{ budget_pool_id: "pool-2", kind: "reserve", amount: "80.00" },
]),
).toEqual([
{
budgetPoolId: "pool-1",
reserve: 120,
confirm: 120,
release: 20,
outstanding: 100,
confirmPending: 0,
},
{
budgetPoolId: "pool-2",
reserve: 80,
confirm: 0,
release: 0,
outstanding: 80,
confirmPending: 80,
},
]);
});
it("builds VALID_001 validation error", () => {
const error = buildPurchaseBudgetValidationError({ budget: "reserve_already_exists" });
expect(error.code).toBe("VALID_001");
expect(error.statusCode).toBe(409);
expect(error.details).toEqual({ budget: "reserve_already_exists" });
});
});