@wavequery/conductor
Version:
Modular LLM orchestration framework
45 lines • 1.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tool_registry_1 = require("../tool-registry");
const tool_type_1 = require("@/types/enums/tool-type");
describe("ToolRegistry", () => {
let registry;
let mockTool;
beforeEach(() => {
registry = new tool_registry_1.ToolRegistry();
mockTool = {
name: "test-tool",
description: "Test tool",
execute: jest.fn(),
};
});
it("should register and retrieve tools", () => {
registry.register(mockTool, tool_type_1.ToolType.ANALYSIS);
const retrieved = registry.get("test-tool");
expect(retrieved).toBe(mockTool);
});
it("should retrieve tools by type", () => {
registry.register(mockTool, tool_type_1.ToolType.ANALYSIS);
const tools = registry.getByType(tool_type_1.ToolType.ANALYSIS);
expect(tools).toHaveLength(1);
expect(tools[0]).toBe(mockTool);
});
it("should prevent duplicate registration", () => {
registry.register(mockTool, tool_type_1.ToolType.ANALYSIS);
expect(() => {
registry.register(mockTool, tool_type_1.ToolType.ANALYSIS);
}).toThrow();
});
it("should unregister tools", () => {
registry.register(mockTool, tool_type_1.ToolType.ANALYSIS);
registry.unregister("test-tool");
expect(() => registry.get("test-tool")).toThrow();
expect(registry.getByType(tool_type_1.ToolType.ANALYSIS)).toHaveLength(0);
});
it("should list all tools and types", () => {
registry.register(mockTool, tool_type_1.ToolType.ANALYSIS);
expect(registry.listTools()).toContain("test-tool");
expect(registry.listTypes()).toContain(tool_type_1.ToolType.ANALYSIS);
});
});
//# sourceMappingURL=tool-registry.test.js.map