UNPKG

ddl-manager

Version:

store postgres procedures and triggers in files

73 lines (58 loc) 1.9 kB
import assert from "assert"; import { FakeDatabaseDriver } from "../FakeDatabaseDriver"; import { MainMigrator } from "../../../lib/Migrator/MainMigrator"; import { Migration } from "../../../lib/Migrator/Migration"; import { DatabaseTrigger } from "../../../lib/database/schema/DatabaseTrigger"; import { TableID } from "../../../lib/database/schema/TableID"; import { Database } from "../../../lib/database/schema/Database"; describe("Migrator", () => { let databaseDriver!: FakeDatabaseDriver; let migration!: Migration; let database!: Database; beforeEach(() => { databaseDriver = new FakeDatabaseDriver(); migration = Migration.empty(); database = new Database(); }); const testTrigger = new DatabaseTrigger({ name: "some_simple_trigger", table: new TableID( "public", "some_table" ), procedure: { schema: "public", name: "some_trigger_func", args: [] } }) it("create trigger", async() => { migration.create({ triggers: [ testTrigger ] }); await MainMigrator.migrate(databaseDriver, database, migration); assert.strictEqual( databaseDriver.state.triggers.length, 1 ); assert.strictEqual( databaseDriver.state.triggers[0].getSignature(), "some_simple_trigger on public.some_table" ); }); it("drop trigger", async() => { databaseDriver.createOrReplaceTrigger(testTrigger); migration.drop({ triggers: [ testTrigger ] }); await MainMigrator.migrate(databaseDriver, database, migration); assert.strictEqual( databaseDriver.state.triggers.length, 0 ); }); });