38 lines
1.5 KiB
TypeScript
38 lines
1.5 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("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");
|
|
});
|
|
});
|