import { describe, expect, it } from 'vitest'; import { createRepositoryRuntime, repositoryConnectionString } from '../../server/repository-factory'; import { LocalAssessorRepository } from '../../src/persistence/local-assessor-repository'; describe('repository runtime selection', () => { it('uses the configured PostgreSQL host and keeps loopback as the local default', () => { expect(repositoryConnectionString({ ASSESSOR_POSTGRES_HOST: 'postgres', ASSESSOR_POSTGRES_DB: 'assessor_experimental', ASSESSOR_POSTGRES_USER: 'assessor_experimental', ASSESSOR_POSTGRES_PASSWORD: 'synthetic password' })).toBe('postgresql://assessor_experimental:synthetic%20password@postgres:5432/assessor_experimental'); expect(repositoryConnectionString({ ASSESSOR_POSTGRES_PASSWORD: 'synthetic' })) .toBe('postgresql://assessor:synthetic@127.0.0.1:5432/assessor'); }); it('uses the explicit in-memory development mode when no database URL is configured', async () => { const runtime = await createRepositoryRuntime({}); expect(runtime.persistence).toBe('memory'); expect(runtime.repository).toBeInstanceOf(LocalAssessorRepository); await runtime.close(); }); });