// What the terminal page decides about cancelling a turn. Run by `npm test`. import assert from "node:assert/strict"; import { test } from "node:test"; import { canCancel, cancelNote, cancelPath, } from "../src/agent/terminal/cancel.ts"; test("cancel is offered while the agent is in a turn, and only then", () => { assert.equal(canCancel("thinking"), true); assert.equal(canCancel("idle"), false); assert.equal(canCancel("compacting"), false); assert.equal(canCancel(undefined), false); }); test("the cancel path names the agent, escaped", () => { assert.equal(cancelPath("iris"), "/api/agents/iris/cancel"); assert.equal(cancelPath("a/b"), "/api/agents/a%2Fb/cancel"); }); test("the note says whether a turn was stopped", () => { assert.equal(cancelNote(true), "turn cancelled"); assert.equal(cancelNote(false), "nothing was running"); });