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'); });