Files
letta-code/src/tests/tools/interactivepolicy.test.ts

28 lines
1.0 KiB
TypeScript

import { describe, expect, test } from "bun:test";
import {
isHeadlessAutoAllowTool,
isInteractiveApprovalTool,
requiresRuntimeUserInput,
} from "../../tools/interactivePolicy";
describe("interactive tool policy", () => {
test("marks interactive approval tools", () => {
expect(isInteractiveApprovalTool("AskUserQuestion")).toBe(true);
expect(isInteractiveApprovalTool("EnterPlanMode")).toBe(true);
expect(isInteractiveApprovalTool("ExitPlanMode")).toBe(true);
expect(isInteractiveApprovalTool("TodoWrite")).toBe(false);
});
test("marks runtime user input tools", () => {
expect(requiresRuntimeUserInput("AskUserQuestion")).toBe(true);
expect(requiresRuntimeUserInput("ExitPlanMode")).toBe(true);
expect(requiresRuntimeUserInput("EnterPlanMode")).toBe(false);
});
test("marks headless auto-allow tools", () => {
expect(isHeadlessAutoAllowTool("EnterPlanMode")).toBe(true);
expect(isHeadlessAutoAllowTool("AskUserQuestion")).toBe(false);
expect(isHeadlessAutoAllowTool("ExitPlanMode")).toBe(false);
});
});