46 lines
1.7 KiB
TypeScript
46 lines
1.7 KiB
TypeScript
import { describe, it, expect } from "vitest";
|
|
import { formatKicadResult } from "../src/tools/tool-response.js";
|
|
|
|
describe("formatKicadResult", () => {
|
|
it("wraps a successful object result as JSON text content", () => {
|
|
const response = formatKicadResult({ success: true, value: 42 });
|
|
expect(response.content).toEqual([
|
|
{ type: "text", text: JSON.stringify({ success: true, value: 42 }) },
|
|
]);
|
|
expect(response.isError).toBeUndefined();
|
|
});
|
|
|
|
it("flags isError when the KiCAD payload reports success=false", () => {
|
|
const response = formatKicadResult({ success: false, error: "boom" });
|
|
expect(response.isError).toBe(true);
|
|
expect(response.content[0].text).toBe(JSON.stringify({ success: false, error: "boom" }));
|
|
});
|
|
|
|
it("does not flag isError for payloads without a success field", () => {
|
|
const response = formatKicadResult({ data: [1, 2, 3] });
|
|
expect(response.isError).toBeUndefined();
|
|
});
|
|
|
|
it("does not flag isError for success=true", () => {
|
|
const response = formatKicadResult({ success: true });
|
|
expect(response.isError).toBeUndefined();
|
|
});
|
|
|
|
it("does not flag isError when success is a truthy non-false value", () => {
|
|
const response = formatKicadResult({ success: "ok" });
|
|
expect(response.isError).toBeUndefined();
|
|
});
|
|
|
|
it("handles string results", () => {
|
|
const response = formatKicadResult("hello");
|
|
expect(response.content[0].text).toBe(JSON.stringify("hello"));
|
|
expect(response.isError).toBeUndefined();
|
|
});
|
|
|
|
it("handles null without throwing", () => {
|
|
const response = formatKicadResult(null);
|
|
expect(response.content[0].type).toBe("text");
|
|
expect(response.isError).toBeUndefined();
|
|
});
|
|
});
|