openskynet / src /acp /event-mapper.test.ts
Darochin's picture
Mirror OpenSkyNet workspace snapshot from Git HEAD
fc93158 verified
import { describe, expect, it } from "vitest";
import { extractToolCallLocations, formatToolTitle } from "./event-mapper.js";
describe("extractToolCallLocations", () => {
it("enforces the global node visit cap across nested structures", () => {
const nested = Array.from({ length: 20 }, (_, outer) =>
Array.from({ length: 20 }, (_, inner) =>
inner === 19 ? { path: `/tmp/file-${outer}.txt` } : { note: `${outer}-${inner}` },
),
);
const locations = extractToolCallLocations(nested);
expect(locations).toBeDefined();
expect(locations?.length).toBeLessThan(20);
expect(locations).not.toContainEqual({ path: "/tmp/file-19.txt" });
});
});
describe("formatToolTitle", () => {
it("escapes inline control characters in tool args", () => {
const title = formatToolTitle("read", {
path: "/tmp/file.txt\nnext-line\twith-tab",
});
expect(title).toContain("\\n");
expect(title).toContain("\\t");
expect(title).not.toContain("\nnext-line");
expect(title).not.toContain("\twith-tab");
});
});