import { describe, expect, it } from "vitest"; import { isCapabilityRouteBlocked, resolveAddressCapabilityRouteDecision, resolveShadowRouteIntent } from "../src/services/addressCapabilityPolicy"; describe("address capability policy", () => { it("maps confirmed payables intent to compute exact capability", () => { const decision = resolveAddressCapabilityRouteDecision("payables_confirmed_as_of_date"); expect(decision.capability_id).toBe("confirmed_payables_as_of_date"); expect(decision.capability_layer).toBe("compute"); expect(decision.capability_route_mode).toBe("exact"); expect(decision.capability_route_enabled).toBe(true); expect(isCapabilityRouteBlocked(decision)).toBe(false); }); it("maps document drilldown intent to navigation capability", () => { const decision = resolveAddressCapabilityRouteDecision("list_documents_by_contract"); expect(decision.capability_id).toBe("documents_drilldown"); expect(decision.capability_layer).toBe("navigation"); expect(decision.capability_route_mode).toBe("exact"); expect(decision.capability_route_enabled).toBe(true); }); it("maps heuristic list intents to heuristic compute route mode", () => { const decision = resolveAddressCapabilityRouteDecision("list_receivables_counterparties"); expect(decision.capability_id).toBe("receivables_candidates_list"); expect(decision.capability_layer).toBe("compute"); expect(decision.capability_route_mode).toBe("heuristic"); }); it("keeps shadow route disabled by default", () => { expect(resolveShadowRouteIntent("payables_confirmed_as_of_date", "confirmed_balance")).toBeNull(); expect(resolveShadowRouteIntent("list_payables_counterparties", "confirmed_balance")).toBeNull(); }); });