UNPKG

@smallprod/models

Version:
47 lines (46 loc) 1.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const __1 = require("../.."); describe.each([ ['MariaDB', 'maria'], ['MySql', 'mysql'], ['PostgresSql', 'postgres'], ])('Delete table migration tests with %s', (dbName, name) => { let dbManager; let model; beforeAll(async (done) => { dbManager = __1.DbManager.getInstance(); dbManager.setConfig({ migrationPath: './src/_tests/migrations/_utils' }); const m = dbManager.get(name); if (m) { model = m; } else { throw new Error(`Database connection not found ${name}`); } done(); }); test('Drop the articles table', async () => { const manager = new __1.MigrationManager(); await manager.migrate('test-create-table-1', name, true); await manager.migrate('test-create-table-2', name, true); await manager.migrate('test-alter-table-1', name, true); await manager.migrate('test-drop-table-1', name, true); const fakeField = new __1.TableField('id', 'bigint'); await model.createTable('articles', [fakeField]); }); test('Rollback the drop of the articles table', async () => { const manager = new __1.MigrationManager(); await manager.migrate('test-create-table-1', name, true); await manager.migrate('test-create-table-2', name, true); await manager.migrate('test-alter-table-1', name, true); await manager.migrate('test-drop-table-1', name, true); await manager.reset('test-drop-table-1', name, true); }); afterEach(async (done) => { await model.removeTable('articles'); await model.removeTable('categories'); await model.removeTable('migrations'); done(); }); });