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

Commit 793ee3f4 by Mick Hansen

conver tests to promises

1 parent 8023222f
...@@ -8,7 +8,7 @@ var chai = require('chai') ...@@ -8,7 +8,7 @@ var chai = require('chai')
chai.config.includeStack = true; chai.config.includeStack = true;
describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() { describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() {
it('can filter through belongsTo', function(done) { it('can filter through belongsTo', function() {
var User = this.sequelize.define('User', {username: DataTypes.STRING }) var User = this.sequelize.define('User', {username: DataTypes.STRING })
, Task = this.sequelize.define('Task', {title: DataTypes.STRING }) , Task = this.sequelize.define('Task', {title: DataTypes.STRING })
, Project = this.sequelize.define('Project', { title: DataTypes.STRING }); , Project = this.sequelize.define('Project', { title: DataTypes.STRING });
...@@ -19,20 +19,20 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() { ...@@ -19,20 +19,20 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() {
Task.belongsTo(Project); Task.belongsTo(Project);
Project.hasMany(Task); Project.hasMany(Task);
this.sequelize.sync({ force: true }).success(function() { return this.sequelize.sync({ force: true }).then(function() {
User.bulkCreate([{ return User.bulkCreate([{
username: 'leia' username: 'leia'
}, { }, {
username: 'vader' username: 'vader'
}]).success(function() { }]).then(function() {
Project.bulkCreate([{ return Project.bulkCreate([{
UserId: 1, UserId: 1,
title: 'republic' title: 'republic'
},{ },{
UserId: 2, UserId: 2,
title: 'empire' title: 'empire'
}]).success(function() { }]).then(function() {
Task.bulkCreate([{ return Task.bulkCreate([{
ProjectId: 1, ProjectId: 1,
title: 'fight empire' title: 'fight empire'
},{ },{
...@@ -44,24 +44,17 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() { ...@@ -44,24 +44,17 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() {
},{ },{
ProjectId: 2, ProjectId: 2,
title: 'rule everything' title: 'rule everything'
}]).success(function() { }]).then(function() {
Task.findAll({ return Task.findAll({
include: [ include: [
{model: Project, include: [ {model: Project, include: [
{model: User, where: {username: 'leia'}} {model: User, where: {username: 'leia'}}
]} ]}
] ]
}).done(function(err, tasks) { }).then(function(tasks) {
expect(err).not.to.be.ok; expect(tasks.length).to.be.equal(2);
expect(tasks[0].title).to.be.equal('fight empire');
try { expect(tasks[1].title).to.be.equal('stablish republic');
expect(tasks.length).to.be.equal(2);
expect(tasks[0].title).to.be.equal('fight empire');
expect(tasks[1].title).to.be.equal('stablish republic');
done();
}catch (e) {
done(e);
}
}); });
}); });
}); });
...@@ -69,7 +62,7 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() { ...@@ -69,7 +62,7 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() {
}); });
}); });
it('avoids duplicated tables in query', function(done) { it('avoids duplicated tables in query', function() {
var User = this.sequelize.define('User', {username: DataTypes.STRING }) var User = this.sequelize.define('User', {username: DataTypes.STRING })
, Task = this.sequelize.define('Task', {title: DataTypes.STRING }) , Task = this.sequelize.define('Task', {title: DataTypes.STRING })
, Project = this.sequelize.define('Project', { title: DataTypes.STRING }); , Project = this.sequelize.define('Project', { title: DataTypes.STRING });
...@@ -80,20 +73,20 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() { ...@@ -80,20 +73,20 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() {
Task.belongsTo(Project); Task.belongsTo(Project);
Project.hasMany(Task); Project.hasMany(Task);
this.sequelize.sync({ force: true }).success(function() { return this.sequelize.sync({ force: true }).then(function() {
User.bulkCreate([{ return User.bulkCreate([{
username: 'leia' username: 'leia'
}, { }, {
username: 'vader' username: 'vader'
}]).success(function() { }]).then(function() {
Project.bulkCreate([{ return Project.bulkCreate([{
UserId: 1, UserId: 1,
title: 'republic' title: 'republic'
},{ },{
UserId: 2, UserId: 2,
title: 'empire' title: 'empire'
}]).success(function() { }]).then(function() {
Task.bulkCreate([{ return Task.bulkCreate([{
ProjectId: 1, ProjectId: 1,
title: 'fight empire' title: 'fight empire'
},{ },{
...@@ -105,8 +98,8 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() { ...@@ -105,8 +98,8 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() {
},{ },{
ProjectId: 2, ProjectId: 2,
title: 'rule everything' title: 'rule everything'
}]).success(function() { }]).then(function() {
Task.findAll({ return Task.findAll({
include: [ include: [
{model: Project, include: [ {model: Project, include: [
{model: User, where: { {model: User, where: {
...@@ -115,15 +108,10 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() { ...@@ -115,15 +108,10 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() {
}} }}
]} ]}
] ]
}).success(function(tasks) { }).then(function(tasks) {
try { expect(tasks.length).to.be.equal(2);
expect(tasks.length).to.be.equal(2); expect(tasks[0].title).to.be.equal('fight empire');
expect(tasks[0].title).to.be.equal('fight empire'); expect(tasks[1].title).to.be.equal('stablish republic');
expect(tasks[1].title).to.be.equal('stablish republic');
done();
}catch (e) {
done(e);
}
}); });
}); });
}); });
...@@ -131,7 +119,7 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() { ...@@ -131,7 +119,7 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() {
}); });
}); });
it('can filter through hasMany', function(done) { it('can filter through hasMany', function() {
var User = this.sequelize.define('User', {username: DataTypes.STRING }) var User = this.sequelize.define('User', {username: DataTypes.STRING })
, Task = this.sequelize.define('Task', {title: DataTypes.STRING }) , Task = this.sequelize.define('Task', {title: DataTypes.STRING })
, Project = this.sequelize.define('Project', { title: DataTypes.STRING }); , Project = this.sequelize.define('Project', { title: DataTypes.STRING });
...@@ -142,20 +130,20 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() { ...@@ -142,20 +130,20 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() {
Task.belongsTo(Project); Task.belongsTo(Project);
Project.hasMany(Task); Project.hasMany(Task);
this.sequelize.sync({ force: true }).success(function() { return this.sequelize.sync({ force: true }).then(function() {
User.bulkCreate([{ return User.bulkCreate([{
username: 'leia' username: 'leia'
}, { }, {
username: 'vader' username: 'vader'
}]).success(function() { }]).then(function() {
Project.bulkCreate([{ return Project.bulkCreate([{
UserId: 1, UserId: 1,
title: 'republic' title: 'republic'
},{ },{
UserId: 2, UserId: 2,
title: 'empire' title: 'empire'
}]).success(function() { }]).then(function() {
Task.bulkCreate([{ return Task.bulkCreate([{
ProjectId: 1, ProjectId: 1,
title: 'fight empire' title: 'fight empire'
},{ },{
...@@ -167,21 +155,16 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() { ...@@ -167,21 +155,16 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() {
},{ },{
ProjectId: 2, ProjectId: 2,
title: 'rule everything' title: 'rule everything'
}]).success(function() { }]).then(function() {
User.findAll({ return User.findAll({
include: [ include: [
{model: Project, include: [ {model: Project, include: [
{model: Task, where: {title: 'fight empire'}} {model: Task, where: {title: 'fight empire'}}
]} ]}
] ]
}).done(function(err, users) { }).then(function(users) {
try { expect(users.length).to.be.equal(1);
expect(users.length).to.be.equal(1); expect(users[0].username).to.be.equal('leia');
expect(users[0].username).to.be.equal('leia');
done();
}catch (e) {
done(e);
}
}); });
}); });
}); });
...@@ -189,47 +172,41 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() { ...@@ -189,47 +172,41 @@ describe(Support.getTestDialectTeaser('Multiple Level Filters'), function() {
}); });
}); });
it('can filter through hasMany connector', function(done) { it('can filter through hasMany connector', function() {
var User = this.sequelize.define('User', {username: DataTypes.STRING }) var User = this.sequelize.define('User', {username: DataTypes.STRING })
, Project = this.sequelize.define('Project', { title: DataTypes.STRING }); , Project = this.sequelize.define('Project', { title: DataTypes.STRING });
Project.hasMany(User); Project.hasMany(User);
User.hasMany(Project); User.hasMany(Project);
this.sequelize.sync({ force: true }).success(function() { return this.sequelize.sync({ force: true }).then(function() {
User.bulkCreate([{ return User.bulkCreate([{
username: 'leia' username: 'leia'
}, { }, {
username: 'vader' username: 'vader'
}]).success(function() { }]).then(function() {
Project.bulkCreate([{ return Project.bulkCreate([{
title: 'republic' title: 'republic'
},{ },{
title: 'empire' title: 'empire'
}]).success(function() { }]).then(function() {
User.find(1).success(function(user) { return User.find(1).then(function(user) {
Project.find(1).success(function(project) { return Project.find(1).then(function(project) {
user.setProjects([project]).success(function() { return user.setProjects([project]).then(function() {
User.find(2).success(function(user) { return User.find(2).then(function(user) {
Project.find(2).success(function(project) { return Project.find(2).then(function(project) {
user.setProjects([project]).success(function() { return user.setProjects([project]).then(function() {
User.findAll({ return User.findAll({
include: [ include: [
{model: Project, where: {title: 'republic'}} {model: Project, where: {title: 'republic'}}
] ]
}).success(function(users) { }).then(function(users) {
try { expect(users.length).to.be.equal(1);
expect(users.length).to.be.equal(1); expect(users[0].username).to.be.equal('leia');
expect(users[0].username).to.be.equal('leia');
done();
}catch (e) {
done(e);
}
}); });
}); });
}); });
}); });
}); });
}); });
}); });
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!