@smallprod/models
Version:
47 lines (46 loc) • 1.81 kB
JavaScript
;
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();
});
});