Закрыть phase96 reviewed-route складских резервов и ликвидности
This commit is contained in:
@@ -710,10 +710,14 @@ describe("assistant MCP discovery answer adapter", () => {
|
||||
const draft = buildAssistantMcpDiscoveryAnswerDraft(pilot);
|
||||
|
||||
expect(draft.headline).toContain(
|
||||
"\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u0440\u0435\u0437\u0435\u0440\u0432"
|
||||
"\u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b \u0441\u043a\u043b\u0430\u0434\u0441\u043a\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b"
|
||||
);
|
||||
expect(draft.headline).toContain(
|
||||
"\u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439"
|
||||
);
|
||||
expect(draft.headline).toContain(
|
||||
"\u043d\u0435 \u0440\u044b\u043d\u043e\u0447\u043d\u0430\u044f \u043b\u0438\u043a\u0432\u0438\u0434\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c"
|
||||
);
|
||||
expect(draft.headline).toContain("\u043d\u0435\u043b\u044c\u0437\u044f");
|
||||
expect(draft.headline).toContain("staleness-risk proxy");
|
||||
expect(draft.headline).not.toContain("бизнес-обзор");
|
||||
expect(draft.must_not_claim).toContain("Do not present business overview inventory staleness risk proxy as confirmed obsolete stock, reserve, write-off, or liquidation value.");
|
||||
});
|
||||
|
||||
@@ -475,7 +475,7 @@ describe("assistant MCP discovery runtime bridge", () => {
|
||||
expect(userFacing).not.toContain("MCP discovery pilot");
|
||||
});
|
||||
|
||||
it("marks exact business-overview proof gaps as route enablement instead of reviewed execution", async () => {
|
||||
it("promotes inventory reserve boundary after reviewed quality-event route executes", async () => {
|
||||
const deps = buildSequentialDeps([
|
||||
{ rows: [{ Period: "2020-01-15T00:00:00", Amount: 120000, Counterparty: "Client A" }] },
|
||||
{ rows: [{ Period: "2020-01-20T00:00:00", Amount: 50000, Counterparty: "Supplier A" }] },
|
||||
@@ -548,20 +548,21 @@ describe("assistant MCP discovery runtime bridge", () => {
|
||||
expect(result.bridge_status).toBe("answer_draft_ready");
|
||||
expect(result.business_fact_answer_allowed).toBe(true);
|
||||
expect(result.route_candidate).toMatchObject({
|
||||
candidate_status: "needs_route_enablement",
|
||||
candidate_status: "ready_for_reviewed_execution",
|
||||
selected_chain_id: "business_overview",
|
||||
business_fact_family: "business_overview",
|
||||
action_family: "inventory_reserve_boundary",
|
||||
executable_now: false
|
||||
executable_now: true,
|
||||
enablement_reason: null
|
||||
});
|
||||
expect(result.route_candidate.enablement_reason).toContain("inventory_reserve_liquidation_quality");
|
||||
expect(result.route_candidate.enablement_reason).toContain(
|
||||
"reviewed_inventory_quality_route_with_reserves_writeoffs_obsolescence_and_liquidation_value"
|
||||
expect(result.pilot.derived_business_overview?.inventory_quality_events?.evidence_status).toBe(
|
||||
"reviewed_no_quality_events_found"
|
||||
);
|
||||
expect(result.route_candidate.forbidden_overclaim_flags).toContain(
|
||||
"confirmed_obsolete_stock_reserve_writeoff_or_liquidation_value"
|
||||
expect(result.pilot.derived_business_overview?.missing_proof_families.map((item) => item.family)).not.toContain(
|
||||
"inventory_reserve_liquidation_quality"
|
||||
);
|
||||
expect(result.reason_codes).toContain("runtime_bridge_route_candidate_needs_route_enablement");
|
||||
expect(result.answer_draft.reason_codes).toContain("answer_contains_business_overview_inventory_quality_events");
|
||||
expect(result.reason_codes).toContain("runtime_bridge_route_candidate_ready_for_reviewed_execution");
|
||||
});
|
||||
|
||||
it("promotes profit-margin boundary when accounting 90/91/99 proof is available", async () => {
|
||||
|
||||
Reference in New Issue
Block a user