import { describe, expect, it } from "vitest"; import { buildConfirmedBalanceSemantics, buildFactualListReply, buildFactualSummaryReply, buildHeuristicCandidatesSemantics } from "../src/services/address_runtime/replyContracts"; describe("replyContracts", () => { it("builds factual replies from line arrays", () => { const result = buildFactualListReply(["Первая строка", "Вторая строка"], buildConfirmedBalanceSemantics("strong")); expect(result).toEqual({ responseType: "FACTUAL_LIST", text: "Первая строка\nВторая строка", semantics: { result_mode: "confirmed_balance", evidence_strength: "strong", balance_confirmed: true } }); }); it("supports downgraded confirmed-balance semantics", () => { expect(buildFactualSummaryReply("Нет подтвержденных строк", buildConfirmedBalanceSemantics("medium", false)).semantics).toEqual({ result_mode: "confirmed_balance", evidence_strength: "medium", balance_confirmed: false }); }); it("builds heuristic candidate semantics from candidate presence", () => { expect(buildHeuristicCandidatesSemantics(true)).toEqual({ result_mode: "heuristic_candidates", evidence_strength: "medium", balance_confirmed: false }); expect(buildHeuristicCandidatesSemantics(false)).toEqual({ result_mode: "heuristic_candidates", evidence_strength: "weak", balance_confirmed: false }); }); });