46 lines
1.5 KiB
TypeScript
46 lines
1.5 KiB
TypeScript
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
|
||
});
|
||
});
|
||
});
|