UNPKG

@wavequery/conductor

Version:
45 lines 1.84 kB
"use strict"; 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