17 lines
937 B
TypeScript
17 lines
937 B
TypeScript
import { readFile } from 'node:fs/promises';
|
|
import { resolve } from 'node:path';
|
|
import { describe, expect, it } from 'vitest';
|
|
import { databaseMigrations } from '../../server/postgres/migration-catalog';
|
|
|
|
const migrationPath = resolve(import.meta.dirname, '..', '..', 'server', 'postgres', 'migrations', '005_gpo_backup_analysis.sql');
|
|
|
|
describe('PostgreSQL GPO backup analysis migration', () => {
|
|
it('binds immutable backup instances to one project, artifact and processing run', async () => {
|
|
const sql = await readFile(migrationPath, 'utf8');
|
|
expect(databaseMigrations.find(migration => migration.version === '005')).toMatchObject({ version: '005', name: 'gpo-backup-analysis' });
|
|
expect(sql).toContain('CREATE TABLE assessor_gpo_backup_instances');
|
|
expect(sql).toContain('FOREIGN KEY (processing_run_id, project_id, artifact_id)');
|
|
expect(sql).toContain('UNIQUE (processing_run_id, instance_id)');
|
|
});
|
|
});
|