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