Assessor_2.0/tests/config/qdrant-compose.test.ts

28 lines
1.6 KiB
TypeScript

import { readFileSync } from 'node:fs';
import { describe, expect, it } from 'vitest';
const localCompose = readFileSync('docker-compose.postgres.yml', 'utf8');
const deploymentCompose = readFileSync('docker-compose.deploy.yml', 'utf8');
const packageJson = JSON.parse(readFileSync('package.json', 'utf8')) as { scripts: Record<string, string> };
describe('regulatory Qdrant Compose boundary', () => {
it('adds an authenticated telemetry-free loopback service without changing canonical PostgreSQL', () => {
expect(localCompose).toContain('name: assessor-2_0');
expect(localCompose).toContain('name: assessor-2_0_assessor-postgres-data');
expect(localCompose).toContain('external: true');
expect(localCompose).toContain('qdrant/qdrant:v1.19.1');
expect(localCompose).toContain('QDRANT__SERVICE__API_KEY: ${ASSESSOR_QDRANT_API_KEY:?ASSESSOR_QDRANT_API_KEY must be set}');
expect(localCompose).toContain('QDRANT__TELEMETRY_DISABLED: "true"');
expect(localCompose).toContain('127.0.0.1:${ASSESSOR_QDRANT_PORT:-6333}:6333');
expect(localCompose).toContain('name: assessor-2_0_assessor-qdrant-data');
});
it('keeps deployment Qdrant internal and exposes a corpus ingestion command', () => {
const qdrant = deploymentCompose.slice(deploymentCompose.indexOf(' qdrant:'));
expect(qdrant).not.toMatch(/\n ports:/);
expect(qdrant).toContain('assessor-qdrant-data:/qdrant/storage');
expect(packageJson.scripts['rag:ingest']).toContain('--env-file-if-exists=.env.postgres');
expect(packageJson.scripts['rag:ingest']).toContain('dist-server/regulatory-ingest.mjs');
});
});