From e0c7917ea2a84e0b995b16fed18602f523205b5b Mon Sep 17 00:00:00 2001 From: Ted Winslow Date: Mon, 10 Aug 2015 16:17:15 -0400 Subject: [PATCH 1/2] refactor(user.model.spec): reduce callback hell by passing functions and reducing function wrapping we can keep complexity low and make everything cleaner and more readable --- .../user.model.spec(mongooseModels).js | 18 +++++------------- .../user.model.spec(sequelizeModels).js | 8 ++------ 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/app/templates/server/api/user(auth)/user.model.spec(mongooseModels).js b/app/templates/server/api/user(auth)/user.model.spec(mongooseModels).js index 1aad3b25e..33dd60c70 100644 --- a/app/templates/server/api/user(auth)/user.model.spec(mongooseModels).js +++ b/app/templates/server/api/user(auth)/user.model.spec(mongooseModels).js @@ -14,18 +14,12 @@ var genUser = function() { }; describe('User Model', function() { - before(function() { - // Clear users before testing - return User.removeAsync(); - }); + // Clear users before testing + before(User.removeAsync); - beforeEach(function() { - genUser(); - }); + beforeEach(genUser); - afterEach(function() { - return User.removeAsync(); - }); + afterEach(User.removeAsync); it('should begin with no users', function() { return User.findAsync({}) @@ -48,9 +42,7 @@ describe('User Model', function() { }); describe('#password', function() { - beforeEach(function() { - return user.saveAsync(); - }); + beforeEach(user.saveAsync); it('should authenticate user if valid', function() { user.authenticate('password').should.be.true; diff --git a/app/templates/server/api/user(auth)/user.model.spec(sequelizeModels).js b/app/templates/server/api/user(auth)/user.model.spec(sequelizeModels).js index a7af1bd38..579557082 100644 --- a/app/templates/server/api/user(auth)/user.model.spec(sequelizeModels).js +++ b/app/templates/server/api/user(auth)/user.model.spec(sequelizeModels).js @@ -21,9 +21,7 @@ describe('User Model', function() { }); }); - beforeEach(function() { - genUser(); - }); + beforeEach(genUser); afterEach(function() { return User.destroy({ where: {} }); @@ -50,9 +48,7 @@ describe('User Model', function() { }); describe('#password', function() { - beforeEach(function() { - return user.save(); - }); + beforeEach(user.save); it('should authenticate user if valid', function() { user.authenticate('password').should.be.true; From 3feb92a5d9acb5214b38640e0cb43e57a18aeb40 Mon Sep 17 00:00:00 2001 From: Ted Winslow Date: Mon, 10 Aug 2015 16:56:54 -0400 Subject: [PATCH 2/2] fix(user.model.spec): have to bind context for mongoose mongoose methods lose their context if you don't bind them --- .../api/user(auth)/user.model.spec(mongooseModels).js | 6 +++--- .../api/user(auth)/user.model.spec(sequelizeModels).js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/templates/server/api/user(auth)/user.model.spec(mongooseModels).js b/app/templates/server/api/user(auth)/user.model.spec(mongooseModels).js index 33dd60c70..d7f1634b1 100644 --- a/app/templates/server/api/user(auth)/user.model.spec(mongooseModels).js +++ b/app/templates/server/api/user(auth)/user.model.spec(mongooseModels).js @@ -15,11 +15,11 @@ var genUser = function() { describe('User Model', function() { // Clear users before testing - before(User.removeAsync); + before(User.removeAsync.bind(User)); beforeEach(genUser); - afterEach(User.removeAsync); + afterEach(User.removeAsync.bind(User)); it('should begin with no users', function() { return User.findAsync({}) @@ -42,7 +42,7 @@ describe('User Model', function() { }); describe('#password', function() { - beforeEach(user.saveAsync); + beforeEach(user.saveAsync.bind(user)); it('should authenticate user if valid', function() { user.authenticate('password').should.be.true; diff --git a/app/templates/server/api/user(auth)/user.model.spec(sequelizeModels).js b/app/templates/server/api/user(auth)/user.model.spec(sequelizeModels).js index 579557082..7bb283aff 100644 --- a/app/templates/server/api/user(auth)/user.model.spec(sequelizeModels).js +++ b/app/templates/server/api/user(auth)/user.model.spec(sequelizeModels).js @@ -48,7 +48,7 @@ describe('User Model', function() { }); describe('#password', function() { - beforeEach(user.save); + beforeEach(user.save.bind(user)); it('should authenticate user if valid', function() { user.authenticate('password').should.be.true;