62 lines
1.8 KiB
TypeScript
62 lines
1.8 KiB
TypeScript
import { describe, expect, it, vi } from "vitest";
|
|
|
|
vi.mock("../../memory/index.js", () => {
|
|
return {
|
|
getMemorySearchManager: async () => {
|
|
return {
|
|
manager: {
|
|
search: async () => {
|
|
throw new Error("openai embeddings failed: 429 insufficient_quota");
|
|
},
|
|
readFile: async () => {
|
|
throw new Error("path required");
|
|
},
|
|
status: () => ({
|
|
files: 0,
|
|
chunks: 0,
|
|
dirty: true,
|
|
workspaceDir: "/tmp",
|
|
dbPath: "/tmp/index.sqlite",
|
|
provider: "openai",
|
|
model: "text-embedding-3-small",
|
|
requestedProvider: "openai",
|
|
}),
|
|
},
|
|
};
|
|
},
|
|
};
|
|
});
|
|
|
|
import { createMemoryGetTool, createMemorySearchTool } from "./memory-tool.js";
|
|
|
|
describe("memory tools", () => {
|
|
it("does not throw when memory_search fails (e.g. embeddings 429)", async () => {
|
|
const cfg = { agents: { list: [{ id: "main", default: true }] } };
|
|
const tool = createMemorySearchTool({ config: cfg });
|
|
expect(tool).not.toBeNull();
|
|
if (!tool) throw new Error("tool missing");
|
|
|
|
const result = await tool.execute("call_1", { query: "hello" });
|
|
expect(result.details).toEqual({
|
|
results: [],
|
|
disabled: true,
|
|
error: "openai embeddings failed: 429 insufficient_quota",
|
|
});
|
|
});
|
|
|
|
it("does not throw when memory_get fails", async () => {
|
|
const cfg = { agents: { list: [{ id: "main", default: true }] } };
|
|
const tool = createMemoryGetTool({ config: cfg });
|
|
expect(tool).not.toBeNull();
|
|
if (!tool) throw new Error("tool missing");
|
|
|
|
const result = await tool.execute("call_2", { path: "memory/NOPE.md" });
|
|
expect(result.details).toEqual({
|
|
path: "memory/NOPE.md",
|
|
text: "",
|
|
disabled: true,
|
|
error: "path required",
|
|
});
|
|
});
|
|
});
|