tinyagent-ts
Version:
Modern TypeScript framework for building AI agents with pluggable tools and ReAct reasoning
60 lines • 2.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const schemas_1 = require("../src/schemas");
describe("ToolCallSchema", () => {
it("accepts a valid tool call", () => {
const data = { tool: "add", args: { a: 1, b: 2 } };
const result = schemas_1.ToolCallSchema.safeParse(data);
expect(result.success).toBe(true);
});
it("rejects extra keys", () => {
const data = { tool: "add", args: { a: 1, b: 2 }, foo: 99 };
const result = schemas_1.ToolCallSchema.safeParse(data);
expect(result.success).toBe(false);
});
it("rejects missing required keys", () => {
const data = { tool: "add" };
const result = schemas_1.ToolCallSchema.safeParse(data);
expect(result.success).toBe(false);
});
it("rejects wrong types", () => {
const data = { tool: 123, args: "not-an-object" };
const result = schemas_1.ToolCallSchema.safeParse(data);
expect(result.success).toBe(false);
});
});
describe("AssistantReplySchema", () => {
it("accepts a valid tool call", () => {
const data = { tool: "add", args: { a: 1, b: 2 } };
const result = schemas_1.AssistantReplySchema.safeParse(data);
expect(result.success).toBe(true);
});
it("rejects extra keys in tool call", () => {
const data = { tool: "add", args: { a: 1, b: 2 }, foo: 99 };
const result = schemas_1.AssistantReplySchema.safeParse(data);
expect(result.success).toBe(false);
});
it("rejects missing required keys", () => {
const data = {};
const result = schemas_1.AssistantReplySchema.safeParse(data);
expect(result.success).toBe(false);
});
it("rejects wrong types", () => {
const data = { tool: 123, args: "not-an-object" };
const result = schemas_1.AssistantReplySchema.safeParse(data);
expect(result.success).toBe(false);
});
});
describe("FinalAnswerCallSchema", () => {
it("accepts a valid final_answer call", () => {
const data = { tool: "final_answer", args: { answer: "ok" } };
const result = schemas_1.FinalAnswerCallSchema.safeParse(data);
expect(result.success).toBe(true);
});
it("rejects invalid payload", () => {
const data = { tool: "final_answer", args: { foo: 1 } };
const result = schemas_1.FinalAnswerCallSchema.safeParse(data);
expect(result.success).toBe(false);
});
});
//# sourceMappingURL=schemas.test.js.map