Files
tg-chat-bot/test/tool-loop-control.test.mjs
T

41 lines
1.3 KiB
JavaScript

import test from "node:test";
import assert from "node:assert/strict";
const {decideToolLoopContinuation} = await import("../dist/ai/tool-loop-control.js");
test("tool loop continuation stops when there are no tool calls", () => {
const decision = decideToolLoopContinuation({
round: 0,
maxRounds: 3,
toolCalls: [],
});
assert.equal(decision.continue, false);
assert.equal(decision.reason, "no_tool_calls");
assert.equal(decision.remainingRounds, 2);
});
test("tool loop continuation stops on the last allowed round", () => {
const decision = decideToolLoopContinuation({
round: 2,
maxRounds: 3,
toolCalls: [{id: "call-1", name: "read_file", argumentsText: "{}"}],
});
assert.equal(decision.continue, false);
assert.equal(decision.reason, "max_rounds_reached");
assert.equal(decision.remainingRounds, 0);
});
test("tool loop continuation allows further rounds when tools remain and rounds are left", () => {
const decision = decideToolLoopContinuation({
round: 1,
maxRounds: 3,
toolCalls: [{id: "call-1", name: "read_file", argumentsText: "{}"}],
});
assert.equal(decision.continue, true);
assert.equal(decision.reason, undefined);
assert.equal(decision.remainingRounds, 1);
});