76 lines
2.0 KiB
TypeScript
76 lines
2.0 KiB
TypeScript
/**
|
|
* Shared test helpers and mock factories for mem0 CLI tests.
|
|
*/
|
|
|
|
import { vi } from "vitest";
|
|
import type { Backend } from "../src/backend/base.js";
|
|
|
|
/** Create a mock backend with all methods stubbed with sensible defaults. */
|
|
export function createMockBackend(): Backend {
|
|
return {
|
|
add: vi.fn().mockResolvedValue({
|
|
results: [
|
|
{
|
|
id: "abc-123-def-456",
|
|
memory: "User prefers dark mode",
|
|
event: "ADD",
|
|
},
|
|
],
|
|
}),
|
|
|
|
search: vi.fn().mockResolvedValue([
|
|
{
|
|
id: "abc-123-def-456",
|
|
memory: "User prefers dark mode",
|
|
score: 0.92,
|
|
created_at: "2026-02-15T10:30:00Z",
|
|
categories: ["preferences"],
|
|
},
|
|
{
|
|
id: "ghi-789-jkl-012",
|
|
memory: "User uses vim keybindings",
|
|
score: 0.78,
|
|
created_at: "2026-03-01T14:00:00Z",
|
|
categories: ["tools"],
|
|
},
|
|
]),
|
|
|
|
get: vi.fn().mockResolvedValue({
|
|
id: "abc-123-def-456",
|
|
memory: "User prefers dark mode",
|
|
created_at: "2026-02-15T10:30:00Z",
|
|
updated_at: "2026-02-20T08:00:00Z",
|
|
metadata: { source: "onboarding" },
|
|
categories: ["preferences"],
|
|
}),
|
|
|
|
listMemories: vi.fn().mockResolvedValue([
|
|
{
|
|
id: "abc-123-def-456",
|
|
memory: "User prefers dark mode",
|
|
created_at: "2026-02-15T10:30:00Z",
|
|
categories: ["preferences"],
|
|
},
|
|
{
|
|
id: "ghi-789-jkl-012",
|
|
memory: "User uses vim keybindings",
|
|
created_at: "2026-03-01T14:00:00Z",
|
|
categories: ["tools"],
|
|
},
|
|
]),
|
|
|
|
update: vi.fn().mockResolvedValue({ id: "abc-123-def-456", memory: "Updated memory" }),
|
|
delete: vi.fn().mockResolvedValue({ status: "deleted" }),
|
|
status: vi.fn().mockResolvedValue({
|
|
connected: true,
|
|
backend: "platform",
|
|
base_url: "https://api.mem0.ai",
|
|
}),
|
|
deleteEntities: vi.fn().mockResolvedValue({ message: "Entity deleted" }),
|
|
entities: vi.fn().mockResolvedValue([
|
|
{ name: "alice", count: 5 },
|
|
{ name: "bob", count: 3 },
|
|
]),
|
|
};
|
|
}
|