search.test.mjs
31 lines 1.3 KB
Raw
sha256:8915fe406161f95c1681f9469375e7bae5b28c884f00bedbdef65e4b0cd0738d docs(flow): commit FLOW-V0-SPEC.md hygiene for 7A-INT merge Human 13 hours ago
1 /**
2 * Search tests: createVectorStore with sqlite-vec, runSearch requires embed (tested via vector-store-sqlite).
3 * This file tests that runSearch returns the expected shape when given a pre-embedded vector path
4 * by testing the vector store integration only. Full search (embed + store) is covered by manual test.
5 */
6 import { describe, it } from 'node:test';
7 import assert from 'node:assert';
8 import path from 'path';
9 import { fileURLToPath } from 'url';
10 import { createVectorStore } from '../lib/vector-store.mjs';
11 import { loadConfig } from '../lib/config.mjs';
12
13 const __dirname = path.dirname(fileURLToPath(import.meta.url));
14 const fixturesDir = path.join(__dirname, 'fixtures');
15
16 describe('createVectorStore (sqlite-vec)', () => {
17 it('returns store with search and count when vector_store is sqlite-vec', async () => {
18 const config = loadConfig(fixturesDir);
19 const configSqlite = {
20 ...config,
21 vector_store: 'sqlite-vec',
22 data_dir: path.join(fixturesDir, 'data'),
23 };
24 const store = await createVectorStore(configSqlite);
25 assert.strictEqual(typeof store.search, 'function');
26 assert.strictEqual(typeof store.count, 'function');
27 assert.strictEqual(typeof store.ensureCollection, 'function');
28 assert.strictEqual(typeof store.upsert, 'function');
29 if (typeof store.close === 'function') store.close();
30 });
31 });
File History 1 commit
sha256:8915fe406161f95c1681f9469375e7bae5b28c884f00bedbdef65e4b0cd0738d docs(flow): commit FLOW-V0-SPEC.md hygiene for 7A-INT merge Human 13 hours ago