Merge Memory V2 runtime facade
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
import {
|
||||
parseMemoryPgvectorSchemaArgs,
|
||||
runMemoryPgvectorSchemaCli,
|
||||
} from './setup-memory-v2-pgvector-schema.mjs';
|
||||
|
||||
test('parseMemoryPgvectorSchemaArgs defaults to dry-run safe settings', () => {
|
||||
assert.deepEqual(parseMemoryPgvectorSchemaArgs([]), {
|
||||
apply: false,
|
||||
tableName: 'memory_embeddings',
|
||||
dimensions: 1536,
|
||||
createExtension: false,
|
||||
createVectorIndex: false,
|
||||
urlEnv: 'MEMORY_PGVECTOR_DATABASE_URL',
|
||||
help: false,
|
||||
});
|
||||
});
|
||||
|
||||
test('parseMemoryPgvectorSchemaArgs maps explicit schema options', () => {
|
||||
assert.deepEqual(
|
||||
parseMemoryPgvectorSchemaArgs([
|
||||
'--apply',
|
||||
'--table',
|
||||
'memory_embeddings_local',
|
||||
'--dimensions',
|
||||
'768',
|
||||
'--create-extension',
|
||||
'--create-vector-index',
|
||||
'--url-env',
|
||||
'LOCAL_MEMORY_PG_URL',
|
||||
]),
|
||||
{
|
||||
apply: true,
|
||||
tableName: 'memory_embeddings_local',
|
||||
dimensions: 768,
|
||||
createExtension: true,
|
||||
createVectorIndex: true,
|
||||
urlEnv: 'LOCAL_MEMORY_PG_URL',
|
||||
help: false,
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
test('runMemoryPgvectorSchemaCli dry-run prints SQL without requiring database url', async () => {
|
||||
const lines = [];
|
||||
const originalLog = console.log;
|
||||
console.log = (line = '') => {
|
||||
lines.push(String(line));
|
||||
};
|
||||
try {
|
||||
const result = await runMemoryPgvectorSchemaCli([
|
||||
'--table',
|
||||
'memory_embeddings',
|
||||
'--dimensions',
|
||||
'1536',
|
||||
], {});
|
||||
assert.deepEqual(result, { ok: true, mode: 'dry-run', statements: 3 });
|
||||
assert.match(lines.join('\n'), /No database changes were made/);
|
||||
assert.match(lines.join('\n'), /CREATE TABLE IF NOT EXISTS "memory_embeddings"/);
|
||||
} finally {
|
||||
console.log = originalLog;
|
||||
}
|
||||
});
|
||||
|
||||
test('runMemoryPgvectorSchemaCli apply requires explicit PostgreSQL url env', async () => {
|
||||
await assert.rejects(
|
||||
() => runMemoryPgvectorSchemaCli(['--apply'], {}),
|
||||
/MEMORY_PGVECTOR_DATABASE_URL/,
|
||||
);
|
||||
});
|
||||
Reference in New Issue
Block a user