Files
memind/scripts/mock-memory-v2-services.test.mjs
2026-07-03 09:46:03 +08:00

40 lines
1.7 KiB
JavaScript

import assert from 'node:assert/strict';
import test from 'node:test';
import { once } from 'node:events';
import { createMockMemoryV2Service } from './mock-memory-v2-services.mjs';
test('mock memory v2 service stores mem0, letta, and langgraph requests', async () => {
const service = createMockMemoryV2Service();
const server = service.createServer();
server.listen(0, '127.0.0.1');
await once(server, 'listening');
const { port } = server.address();
const baseUrl = `http://127.0.0.1:${port}`;
await fetch(`${baseUrl}/mem0/v1/memories`, {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({ user_id: 'u1', messages: [{ text: 'hello mem0' }] }),
});
await fetch(`${baseUrl}/letta/v1/agents/agent_1/messages`, {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({ user_id: 'u1', messages: [{ text: 'hello letta' }] }),
});
const langgraphResponse = await fetch(`${baseUrl}/langgraph/memory/resolve`, {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({ user_id: 'u1', query: 'route me' }),
});
const langgraphPayload = await langgraphResponse.json();
const stateResponse = await fetch(`${baseUrl}/__admin/state`);
const statePayload = await stateResponse.json();
assert.equal(statePayload.state.mem0.writes.length, 1);
assert.equal(statePayload.state.letta.messages.length, 1);
assert.equal(statePayload.state.langgraph.resolves.length, 1);
assert.deepEqual(langgraphPayload.activeGoals, ['route-memory']);
await new Promise((resolve, reject) => server.close((err) => (err ? reject(err) : resolve())));
});