NODEDC_1C/llm_normalizer/backend/tests/addressCapabilityPolicy.tes...

38 lines
1.7 KiB
TypeScript

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