UNPKG

tinyagent-ts

Version:

Modern TypeScript framework for building AI agents with pluggable tools and ReAct reasoning

53 lines 2.2 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const promptEngine_1 = require("../src/promptEngine"); const path_1 = __importDefault(require("path")); describe("PromptEngine", () => { let engine; beforeEach(() => { engine = new promptEngine_1.PromptEngine(); }); it("renders the default greeting", () => { expect(engine.render("greeting", { user: "Fabian" })) .toBe("👋 Hey Fabian, how can I help?"); }); it("allows constructor overrides", () => { const custom = new promptEngine_1.PromptEngine({ greeting: () => "Hi" }); expect(custom.render("greeting")).toBe("Hi"); }); it("registers a new template", () => { engine.register("thanks", () => "🙏 Thanks!"); expect(engine.render("thanks")).toBe("🙏 Thanks!"); }); it("throws on duplicate register", () => { engine.register("dup", () => "one"); expect(() => engine.register("dup", () => "two")) .toThrow(/already exists/i); }); it("overwrites an existing template", () => { engine.overwrite("greeting", () => "Hola"); expect(engine.render("greeting")).toBe("Hola"); }); it("throws on unknown key", () => { expect(() => engine.render("doesNotExist")) .toThrow(/not found/i); }); it("does not mutate defaultTemplates", () => { expect(promptEngine_1.defaultTemplates.greeting({ user: "Fabian" })) .toBe("👋 Hey Fabian, how can I help?"); }); it("substitutes placeholders", () => { expect(engine.render("agent", { tools: "hammer" })) .toContain("hammer"); }); it("accepts file-based overrides", () => { const customFile = path_1.default.join(__dirname, "fixtures", "customAgent.md"); const filePE = new promptEngine_1.PromptEngine({}, { agent: customFile }); expect(filePE.render("agent", { tools: "saw" })) .toMatch(/Custom[\s\S]*saw/); }); }); //# sourceMappingURL=promptEngine.test.js.map