import { describe, expect, test } from 'vitest'; import type { PgColumn, PgTable } from '../../abstractions/index.js'; import { VirtualFkColumn } from './virtual-fk-column.js'; describe('VirtualFkColumn', () => { test('Virtual FK is created with correct references', () => { // Arrange & Act const entityTablePk: PgColumn = { name: 'id', type: 'TEXT', table: { name: 'entity' } as PgTable, } as PgColumn; const relationsTable: PgTable = { name: 'entity_relation', buildFullName: () => 'schema.entity_relation', } as PgTable; const virtualFkColumn = new VirtualFkColumn(entityTablePk, relationsTable); // Assert expect(virtualFkColumn.buildExpression()).toBe('entity_id TEXT'); expect(virtualFkColumn.buildAdditionalStatements()).toEqual([ 'CREATE INDEX ON schema.entity_relation (entity_id)', ]); }); });