src/tests/testColumnRemoveOptimization.js
import test from 'tape';
import optimizer from '..';
test('when optimizing a column create, typechange and remove change', (t) => {
var changes = [
{
change: 'column.create',
projectId: '1',
schemaId: '1',
columnId: '1',
column: {
name: 'id',
type: 'uuid'
}
},
{
change: 'column.typechange',
projectId: '1',
schemaId: '1',
columnId: '1',
columnName: 'id',
type: 'integer',
oldType: 'uuid'
},
{
change: 'column.remove',
projectId: '1',
schemaId: '1',
columnId: '1',
oldColumn: {
name: 'id',
type: 'integer'
}
}
];
var actual = optimizer.optimize(changes);
console.log(actual);
var expected = [
{
change: 'column.remove',
projectId: '1',
schemaId: '1',
columnId: '1',
oldColumn: {
name: 'id',
type: 'integer'
}
}
];
t.deepEqual(actual, expected, 'non-agressive should only return the column.remove change');
var actual = optimizer.optimize(changes, true);
console.log(actual);
var expected = [];
t.deepEqual(actual, expected, 'agressive should only return no changes at all');
t.end();
});