Add more love to tests, pr #249

This commit is contained in:
Anatoliy Chakkaev 2013-03-31 14:17:25 +04:00
parent 76c7fbd6ec
commit f36372ba80
1 changed files with 14 additions and 12 deletions

View File

@ -217,18 +217,18 @@ describe('hooks', function() {
}); });
}); });
it('afterUpdate should not be triggered on failed save', function(done) { it('should not trigger after-hook on failed save', function(done) {
User.afterUpdate = function() { User.afterUpdate = function() {
throw new Error('shouldn\'t be called') should.fail('afterUpdate shouldn\'t be called')
}; };
User.create(function (err, user) { User.create(function (err, user) {
var old = User.schema.adapter.save; var save = User.schema.adapter.save;
User.schema.adapter.save = function(modelName, id, cb) { User.schema.adapter.save = function(modelName, id, cb) {
cb(new Error('error')); User.schema.adapter.save = save;
cb(new Error('Error'));
} }
user.save(function(err) { user.save(function(err) {
User.schema.adapter.save = old;
done(); done();
}); });
}); });
@ -236,6 +236,7 @@ describe('hooks', function() {
}); });
describe('destroy', function() { describe('destroy', function() {
afterEach(removeHooks('Destroy')); afterEach(removeHooks('Destroy'));
it('should be triggered on destroy', function(done) { it('should be triggered on destroy', function(done) {
@ -244,30 +245,31 @@ describe('hooks', function() {
hook = 'called'; hook = 'called';
next(); next();
}; };
User.afterDestroy = function() { User.afterDestroy = function(next) {
hook.should.eql('called'); hook.should.eql('called');
done(); next();
}; };
User.create(function (err, user) { User.create(function (err, user) {
user.destroy(); user.destroy(done);
}); });
}); });
it('afterDestroy should not be triggered on failed destroy', function(done) { it('should not trigger after-hook on failed destroy', function(done) {
var old = User.schema.adapter.destroy; var destroy = User.schema.adapter.destroy;
User.schema.adapter.destroy = function(modelName, id, cb) { User.schema.adapter.destroy = function(modelName, id, cb) {
cb(new Error('error')); cb(new Error('error'));
} }
User.afterDestroy = function() { User.afterDestroy = function() {
throw new Error('shouldn\'t be called') should.fail('afterDestroy shouldn\'t be called')
}; };
User.create(function (err, user) { User.create(function (err, user) {
user.destroy(function(err) { user.destroy(function(err) {
User.schema.adapter.destroy = old; User.schema.adapter.destroy = destroy;
done(); done();
}); });
}); });
}); });
}); });
describe('lifecycle', function() { describe('lifecycle', function() {