82 lines
3.3 KiB
TypeScript
82 lines
3.3 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
evaluateAddressRouteExpectation,
|
|
loadAddressRouteExpectationsContract
|
|
} from "../src/services/addressRouteExpectations";
|
|
|
|
describe("address route expectations contract", () => {
|
|
it("loads expectations contract with entries", () => {
|
|
const contract = loadAddressRouteExpectationsContract();
|
|
expect(contract.schema_version).toBe("address_route_expectations_v1");
|
|
expect(Array.isArray(contract.entries)).toBe(true);
|
|
expect(contract.entries.length).toBeGreaterThan(0);
|
|
});
|
|
|
|
it("matches expected recipe and result mode for exact payables route", () => {
|
|
const audit = evaluateAddressRouteExpectation({
|
|
intent: "payables_confirmed_as_of_date",
|
|
selectedRecipe: "address_payables_confirmed_as_of_date_v1",
|
|
requestedResultMode: "confirmed_balance",
|
|
resultMode: "confirmed_balance"
|
|
});
|
|
expect(audit.status).toBe("matched");
|
|
expect(audit.reason).toBe("route_expectation_matched");
|
|
});
|
|
|
|
it("matches expected recipe and result mode for exact receivables route", () => {
|
|
const audit = evaluateAddressRouteExpectation({
|
|
intent: "receivables_confirmed_as_of_date",
|
|
selectedRecipe: "address_receivables_confirmed_as_of_date_v1",
|
|
requestedResultMode: "confirmed_balance",
|
|
resultMode: "confirmed_balance"
|
|
});
|
|
expect(audit.status).toBe("matched");
|
|
expect(audit.reason).toBe("route_expectation_matched");
|
|
});
|
|
|
|
it("matches expected recipe and result mode for exact VAT payable route", () => {
|
|
const audit = evaluateAddressRouteExpectation({
|
|
intent: "vat_payable_confirmed_as_of_date",
|
|
selectedRecipe: "address_vat_payable_confirmed_as_of_date_v1",
|
|
requestedResultMode: "confirmed_balance",
|
|
resultMode: "confirmed_balance"
|
|
});
|
|
expect(audit.status).toBe("matched");
|
|
expect(audit.reason).toBe("route_expectation_matched");
|
|
});
|
|
|
|
it("matches expected recipe and result mode for exact inventory route", () => {
|
|
const audit = evaluateAddressRouteExpectation({
|
|
intent: "inventory_on_hand_as_of_date",
|
|
selectedRecipe: "address_inventory_on_hand_as_of_date_v1",
|
|
requestedResultMode: "confirmed_balance",
|
|
resultMode: "confirmed_balance"
|
|
});
|
|
expect(audit.status).toBe("matched");
|
|
expect(audit.reason).toBe("route_expectation_matched");
|
|
});
|
|
|
|
it("matches expected recipe and result mode for exact VAT tax-period liability route", () => {
|
|
const audit = evaluateAddressRouteExpectation({
|
|
intent: "vat_liability_confirmed_for_tax_period",
|
|
selectedRecipe: "address_vat_liability_confirmed_tax_period_v1",
|
|
requestedResultMode: "confirmed_balance",
|
|
resultMode: "confirmed_balance"
|
|
});
|
|
expect(audit.status).toBe("matched");
|
|
expect(audit.reason).toBe("route_expectation_matched");
|
|
});
|
|
|
|
it("detects selected recipe mismatch", () => {
|
|
const audit = evaluateAddressRouteExpectation({
|
|
intent: "payables_confirmed_as_of_date",
|
|
selectedRecipe: "address_movements_payables_v1",
|
|
requestedResultMode: "confirmed_balance",
|
|
resultMode: "confirmed_balance"
|
|
});
|
|
expect(audit.status).toBe("mismatch");
|
|
expect(audit.reason).toBe("selected_recipe_mismatch");
|
|
expect(audit.expected_selected_recipes).toContain("address_payables_confirmed_as_of_date_v1");
|
|
});
|
|
});
|