49 lines
1.3 KiB
JavaScript
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');
|
|
});
|