Files
Jyotisha/frontend/tests/conversational-convergence.test.ts
T
2026-07-23 13:12:09 +08:00

34 lines
1.2 KiB
TypeScript

import assert from "node:assert/strict";
import test from "node:test";
import {
MAXIMUM_SCOREABLE_EVENTS,
rangeCompletionReason,
} from "../src/lib/conversational-rectification/convergence.ts";
import type { RectificationTechnicalPacket } from "../src/lib/conversational-rectification/technical-packet.ts";
const pendingPacket = {
candidate: { status: "pending_validation" },
suggestedDomains: [
{ domain: "relationship", layer: "D9", reason: "relationship evidence" },
{ domain: "finance", layer: "D11", reason: "finance evidence" },
],
} as RectificationTechnicalPacket;
test("does not stop at the evidence count limit while discriminating domains remain unanswered", () => {
assert.equal(rangeCompletionReason({
packet: pendingPacket,
scoreableEventCount: MAXIMUM_SCOREABLE_EVENTS,
plateauCount: 1,
unansweredSuggestedDomainCount: 2,
}), null);
});
test("stops at the evidence count limit after the suggested domains are covered", () => {
assert.equal(rangeCompletionReason({
packet: pendingPacket,
scoreableEventCount: MAXIMUM_SCOREABLE_EVENTS,
plateauCount: 1,
unansweredSuggestedDomainCount: 0,
}), "evidence_limit");
});