不要怂,就是干,撸起袖子干!

Commit ffdcb397 by Ruben Bridgewater

Refactor all query interface tests to use promises

1 parent 6a72bded
Showing with 24 additions and 59 deletions
...@@ -10,36 +10,23 @@ var chai = require('chai') ...@@ -10,36 +10,23 @@ var chai = require('chai')
chai.config.includeStack = true; chai.config.includeStack = true;
describe(Support.getTestDialectTeaser('QueryInterface'), function() { describe(Support.getTestDialectTeaser('QueryInterface'), function() {
beforeEach(function(done) { beforeEach(function() {
this.sequelize.options.quoteIdenifiers = true; this.sequelize.options.quoteIdenifiers = true;
this.queryInterface = this.sequelize.getQueryInterface(); this.queryInterface = this.sequelize.getQueryInterface();
done();
}); });
describe('dropAllTables', function() { describe('dropAllTables', function() {
it('should drop all tables', function(done) { it('should drop all tables', function() {
var self = this; var self = this;
this.queryInterface.dropAllTables().complete(function(err) { return this.queryInterface.dropAllTables().then(function() {
expect(err).to.be.null; return self.queryInterface.showAllTables().then(function(tableNames) {
self.queryInterface.showAllTables().complete(function(err, tableNames) {
expect(err).to.be.null;
expect(tableNames).to.be.empty; expect(tableNames).to.be.empty;
return self.queryInterface.createTable('table', { name: DataTypes.STRING }).then(function() {
self.queryInterface.createTable('table', { name: DataTypes.STRING }).complete(function(err) { return self.queryInterface.showAllTables().then(function(tableNames) {
expect(err).to.be.null;
self.queryInterface.showAllTables().complete(function(err, tableNames) {
expect(err).to.be.null;
expect(tableNames).to.have.length(1); expect(tableNames).to.have.length(1);
return self.queryInterface.dropAllTables().then(function() {
self.queryInterface.dropAllTables().complete(function(err) { return self.queryInterface.showAllTables().then(function(tableNames) {
expect(err).to.be.null;
self.queryInterface.showAllTables().complete(function(err, tableNames) {
expect(err).to.be.null;
expect(tableNames).to.be.empty; expect(tableNames).to.be.empty;
done();
}); });
}); });
}); });
...@@ -48,23 +35,17 @@ describe(Support.getTestDialectTeaser('QueryInterface'), function() { ...@@ -48,23 +35,17 @@ describe(Support.getTestDialectTeaser('QueryInterface'), function() {
}); });
}); });
it('should be able to skip given tables', function(done) { it('should be able to skip given tables', function() {
var self = this; var self = this;
self.queryInterface.createTable('skipme', { return self.queryInterface.createTable('skipme', {
name: DataTypes.STRING name: DataTypes.STRING
}).success(function() { }).then(function() {
self.queryInterface.dropAllTables({skip: ['skipme']}).complete(function(err) { return self.queryInterface.dropAllTables({skip: ['skipme']}).then(function() {
expect(err).to.be.null; return self.queryInterface.showAllTables().then(function(tableNames) {
self.queryInterface.showAllTables().complete(function(err, tableNames) {
expect(err).to.be.null;
if (dialect === 'mssql' /* current.dialect.supports.schemas */) { if (dialect === 'mssql' /* current.dialect.supports.schemas */) {
tableNames = _.pluck(tableNames, 'tableName'); tableNames = _.pluck(tableNames, 'tableName');
} }
expect(tableNames).to.contain('skipme'); expect(tableNames).to.contain('skipme');
done();
}); });
}); });
}); });
...@@ -72,41 +53,27 @@ describe(Support.getTestDialectTeaser('QueryInterface'), function() { ...@@ -72,41 +53,27 @@ describe(Support.getTestDialectTeaser('QueryInterface'), function() {
}); });
describe('indexes', function() { describe('indexes', function() {
beforeEach(function(done) { beforeEach(function() {
var self = this; var self = this;
this.queryInterface.dropTable('Group').success(function() { return this.queryInterface.dropTable('Group').then(function() {
self.queryInterface.createTable('Group', { return self.queryInterface.createTable('Group', {
username: DataTypes.STRING, username: DataTypes.STRING,
isAdmin: DataTypes.BOOLEAN, isAdmin: DataTypes.BOOLEAN,
from: DataTypes.STRING from: DataTypes.STRING
}).success(function() {
done();
}); });
}); });
}); });
it('adds, reads and removes an index to the table', function(done) { it('adds, reads and removes an index to the table', function() {
var self = this; var self = this;
return this.queryInterface.addIndex('Group', ['username', 'isAdmin']).then(function() {
this.queryInterface.addIndex('Group', ['username', 'isAdmin']).complete(function(err) { return self.queryInterface.showIndex('Group').then(function(indexes) {
expect(err).to.be.null;
self.queryInterface.showIndex('Group').complete(function(err, indexes) {
expect(err).to.be.null;
var indexColumns = _.uniq(indexes.map(function(index) { return index.name; })); var indexColumns = _.uniq(indexes.map(function(index) { return index.name; }));
expect(indexColumns).to.include('group_username_is_admin'); expect(indexColumns).to.include('group_username_is_admin');
return self.queryInterface.removeIndex('Group', ['username', 'isAdmin']).then(function() {
self.queryInterface.removeIndex('Group', ['username', 'isAdmin']).complete(function(err) { return self.queryInterface.showIndex('Group').then(function(indexes) {
expect(err).to.be.null;
self.queryInterface.showIndex('Group').complete(function(err, indexes) {
expect(err).to.be.null;
indexColumns = _.uniq(indexes.map(function(index) { return index.name; })); indexColumns = _.uniq(indexes.map(function(index) { return index.name; }));
expect(indexColumns).to.be.empty; expect(indexColumns).to.be.empty;
done();
}); });
}); });
}); });
...@@ -119,7 +86,7 @@ describe(Support.getTestDialectTeaser('QueryInterface'), function() { ...@@ -119,7 +86,7 @@ describe(Support.getTestDialectTeaser('QueryInterface'), function() {
}); });
describe('describeTable', function() { describe('describeTable', function() {
it('reads the metadata of the table', function(done) { it('reads the metadata of the table', function() {
var self = this; var self = this;
var Users = self.sequelize.define('_Users', { var Users = self.sequelize.define('_Users', {
username: DataTypes.STRING, username: DataTypes.STRING,
...@@ -127,9 +94,8 @@ describe(Support.getTestDialectTeaser('QueryInterface'), function() { ...@@ -127,9 +94,8 @@ describe(Support.getTestDialectTeaser('QueryInterface'), function() {
enumVals: DataTypes.ENUM('hello', 'world') enumVals: DataTypes.ENUM('hello', 'world')
}, { freezeTableName: true }); }, { freezeTableName: true });
Users.sync({ force: true }).success(function() { return Users.sync({ force: true }).then(function() {
self.queryInterface.describeTable('_Users').complete(function(err, metadata) { return self.queryInterface.describeTable('_Users').then(function(metadata) {
expect(err).to.be.null;
var username = metadata.username; var username = metadata.username;
var isAdmin = metadata.isAdmin; var isAdmin = metadata.isAdmin;
var enumVals = metadata.enumVals; var enumVals = metadata.enumVals;
...@@ -164,7 +130,6 @@ describe(Support.getTestDialectTeaser('QueryInterface'), function() { ...@@ -164,7 +130,6 @@ describe(Support.getTestDialectTeaser('QueryInterface'), function() {
expect(enumVals.special).to.be.instanceof(Array); expect(enumVals.special).to.be.instanceof(Array);
expect(enumVals.special).to.have.length(2); expect(enumVals.special).to.have.length(2);
} }
done();
}); });
}); });
}); });
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!