Assessor_2.0/tests/postgres/repository-factory.test.ts

24 lines
1.2 KiB
TypeScript

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