Skip to main content
Glama
memory.test.ts2.16 kB
import { describe, it, expect, vi, beforeEach } from "vitest"; import { saveMemoryHandler, readMemoryHandler, listMemoriesHandler, clearMemoryHandler, } from "./memory.js"; import fs from "fs/promises"; vi.mock("fs/promises"); describe("Memory Tools", () => { beforeEach(() => { vi.clearAllMocks(); // Default mock for file existence/reading (fs.access as any).mockResolvedValue(undefined); (fs.readFile as any).mockResolvedValue("{}"); }); describe("saveMemoryHandler", () => { it("should save memory", async () => { await saveMemoryHandler({ key: "test", value: "data" }); expect(fs.writeFile).toHaveBeenCalled(); const writeCall = (fs.writeFile as any).mock.calls[0]; expect(writeCall[1]).toContain('"test"'); expect(writeCall[1]).toContain('"value": "data"'); }); }); describe("readMemoryHandler", () => { it("should read memory", async () => { (fs.readFile as any).mockResolvedValue( JSON.stringify({ test: { value: "data" } }), ); const result = await readMemoryHandler({ key: "test" }); expect(result.content[0].text).toContain('"value": "data"'); }); it("should handle missing key", async () => { const result = await readMemoryHandler({ key: "missing" }); expect(result.content[0].text).toBe("Key not found."); }); }); describe("listMemoriesHandler", () => { it("should list memories", async () => { (fs.readFile as any).mockResolvedValue( JSON.stringify({ test: { value: "data", project: "p1" } }), ); const result = await listMemoriesHandler({}); expect(result.content[0].text).toContain("**test**: data"); }); }); describe("clearMemoryHandler", () => { it("should clear specific memory", async () => { (fs.readFile as any).mockResolvedValue( JSON.stringify({ test: { value: "data" } }), ); await clearMemoryHandler({ key: "test" }); expect(fs.writeFile).toHaveBeenCalled(); const writeCall = (fs.writeFile as any).mock.calls[0]; expect(writeCall[1]).toBe("{}"); // Empty object after deletion }); }); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/millsydotdev/Code-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server