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"); }); });