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

49 lines
1.3 KiB
JavaScript

import assert from 'node:assert/strict';
import test from 'node:test';
import { createWeaviateHttpClient } from './memory-v2-weaviate.mjs';
test('weaviate client uses WhereInput for GraphQL filter variables', async () => {
let requestBody = null;
const client = createWeaviateHttpClient({
url: 'http://127.0.0.1:18080',
fetchImpl: async (_url, init) => {
requestBody = JSON.parse(String(init.body));
return {
ok: true,
async json() {
return {
data: {
Get: {
MemoryItem: [{
text: 'memory-chain smoke hit',
label: 'semantic',
_additional: {
id: '1',
certainty: 1,
},
}],
},
},
};
},
};
},
});
const result = await client.search({
collection: 'MemoryItem',
vector: [1, 0, 0],
userId: 'memory-v2-smoke-user',
limit: 1,
});
assert.match(requestBody.query, /\$where: GetObjectsMemoryItemWhereInpObj/);
assert.deepEqual(requestBody.variables.where, {
path: ['user_id'],
operator: 'Equal',
valueText: 'memory-v2-smoke-user',
});
assert.equal(result.length, 1);
assert.equal(result[0].text, 'memory-chain smoke hit');
});