UNPKG

@notbnull/mcp-cursor-taskmaster

Version:

A project-scoped MCP server requiring explicit --project-dir configuration for task management, memory retrieval, and agentic workflows

70 lines 3.15 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const memory_store_1 = require("../src/memory-store"); const promises_1 = __importDefault(require("fs/promises")); const path_1 = __importDefault(require("path")); const os_1 = __importDefault(require("os")); describe("MemoryStore", () => { let memoryStore; let testDir; beforeEach(async () => { // Create a temporary directory for testing testDir = path_1.default.join(os_1.default.tmpdir(), `rag-context-test-${Date.now()}`); memoryStore = new memory_store_1.MemoryStore(testDir); await memoryStore.initialize(); }); afterEach(async () => { // Clean up memoryStore.close(); await promises_1.default.rm(testDir, { recursive: true, force: true }); }); test("should store and retrieve memory by key", async () => { const memory = await memoryStore.set("test-key", "test content", { tag: "test", }); expect(memory.key).toBe("test-key"); expect(memory.content).toBe("test content"); expect(memory.metadata).toEqual({ tag: "test" }); const retrieved = await memoryStore.get("test-key"); expect(retrieved).not.toBeNull(); expect(retrieved?.content).toBe("test content"); }); test("should return null for non-existent key", async () => { const result = await memoryStore.get("non-existent"); expect(result).toBeNull(); }); test("should update existing memory", async () => { await memoryStore.set("update-key", "original content"); await memoryStore.set("update-key", "updated content"); const retrieved = await memoryStore.get("update-key"); expect(retrieved?.content).toBe("updated content"); }); test("should delete memory", async () => { await memoryStore.set("delete-key", "content to delete"); const deleted = await memoryStore.delete("delete-key"); expect(deleted).toBe(true); const retrieved = await memoryStore.get("delete-key"); expect(retrieved).toBeNull(); }); test("should list memories", async () => { await memoryStore.set("key1", "content1"); await memoryStore.set("key2", "content2"); await memoryStore.set("key3", "content3"); const list = await memoryStore.list(2); expect(list).toHaveLength(2); expect(list[0].key).toBe("key3"); // Most recent first }); test("should search memories", async () => { await memoryStore.set("search1", "The quick brown fox"); await memoryStore.set("search2", "jumps over the lazy dog"); await memoryStore.set("search3", "The fox is clever"); const results = await memoryStore.search("fox"); expect(results).toHaveLength(2); expect(results.map((r) => r.key)).toContain("search1"); expect(results.map((r) => r.key)).toContain("search3"); }); }); //# sourceMappingURL=memory-store.test.js.map