mirror of
https://github.com/knex/knex.git
synced 2025-07-19 15:01:45 +00:00
119 lines
2.9 KiB
JavaScript
119 lines
2.9 KiB
JavaScript
const Knex = require('../../../../lib');
|
|
const { expect } = require('chai');
|
|
const sqliteConfig = require('../../../knexfile').sqlite3;
|
|
const FsMigrations =
|
|
require('../../../../lib/migrations/migrate/sources/fs-migrations').default;
|
|
|
|
describe('Migrator', () => {
|
|
describe('does not use postProcessResponse for internal queries', (done) => {
|
|
let migrationSource;
|
|
let knex;
|
|
beforeEach(() => {
|
|
migrationSource = new FsMigrations('test/unit/migrate/migrations/');
|
|
knex = Knex({
|
|
...sqliteConfig,
|
|
connection: ':memory:',
|
|
migrationSource,
|
|
postProcessResponse: () => {
|
|
throw new Error('Response was processed');
|
|
},
|
|
});
|
|
});
|
|
|
|
afterEach(() => {
|
|
return knex.destroy();
|
|
});
|
|
|
|
it('latest', (done) => {
|
|
expect(() => {
|
|
return knex.migrate
|
|
.latest({
|
|
directory: 'test/unit/migrate/migrations',
|
|
})
|
|
.then(() => {
|
|
done();
|
|
});
|
|
}).not.to.throw();
|
|
});
|
|
});
|
|
|
|
describe('supports running migrations in transaction', (done) => {
|
|
let migrationSource;
|
|
let knex;
|
|
let wasProcessed = false;
|
|
let wasWrapped = false;
|
|
beforeEach(() => {
|
|
migrationSource = new FsMigrations('test/unit/migrate/migrations/');
|
|
knex = Knex({
|
|
...sqliteConfig,
|
|
connection: ':memory:',
|
|
migrationSource,
|
|
postProcessResponse: (response) => {
|
|
wasProcessed = true;
|
|
return response;
|
|
},
|
|
wrapIdentifier: (value, wrap) => {
|
|
wasWrapped = true;
|
|
return wrap(value);
|
|
},
|
|
});
|
|
});
|
|
|
|
afterEach(() => {
|
|
return knex.destroy();
|
|
});
|
|
|
|
it('latest', (done) => {
|
|
expect(() => {
|
|
return knex.transaction((txn) => {
|
|
txn.migrate
|
|
.latest({
|
|
directory: 'test/unit/migrate/migrations',
|
|
})
|
|
.then(() => {
|
|
expect(wasProcessed).to.equal(false);
|
|
expect(wasWrapped).to.equal(false);
|
|
done();
|
|
});
|
|
});
|
|
}).not.to.throw();
|
|
});
|
|
});
|
|
|
|
describe('uses postProcessResponse for migrations', (done) => {
|
|
let migrationSource;
|
|
let knex;
|
|
beforeEach(() => {
|
|
migrationSource = new FsMigrations(
|
|
'test/unit/migrate/processed-migrations/'
|
|
);
|
|
});
|
|
|
|
afterEach(() => {
|
|
return knex.destroy();
|
|
});
|
|
|
|
it('latest', (done) => {
|
|
let wasPostProcessed = false;
|
|
knex = Knex({
|
|
...sqliteConfig,
|
|
connection: ':memory:',
|
|
migrationSource,
|
|
postProcessResponse: (response) => {
|
|
wasPostProcessed = true;
|
|
return response;
|
|
},
|
|
});
|
|
|
|
knex.migrate
|
|
.latest({
|
|
directory: 'test/unit/migrate/processed-migrations',
|
|
})
|
|
.then(() => {
|
|
expect(wasPostProcessed).to.equal(true);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
});
|