Skip to content
This repository has been archived by the owner on Feb 10, 2022. It is now read-only.

Commit

Permalink
fix middleware execution order
Browse files Browse the repository at this point in the history
  • Loading branch information
vdemedes committed Apr 10, 2015
1 parent 14ca4d5 commit 550ae74
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 30 deletions.
2 changes: 1 addition & 1 deletion lib/mongorito.js
Expand Up @@ -437,7 +437,7 @@ var Model = (function () {
// if create or update hooks requested
// prepend save hooks also
if (action === 'create' || action === 'update') {
hooks.unshift.apply(hooks, this._hooks[when].save);
hooks.push.apply(hooks, this._hooks[when].save);
}

return hooks;
Expand Down
2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "mongorito",
"version": "1.1.1",
"version": "1.2.0",
"description": "ES6 generator-based MongoDB ODM. It rocks.",
"author": "Vadim Demedes <vdemedes@gmail.com>",
"dependencies": {
Expand Down
2 changes: 1 addition & 1 deletion src/mongorito.js
Expand Up @@ -441,7 +441,7 @@ class Model {
// if create or update hooks requested
// prepend save hooks also
if (action === 'create' || action === 'update') {
hooks.unshift.apply(hooks, this._hooks[when]['save']);
hooks.push.apply(hooks, this._hooks[when]['save']);
}

return hooks;
Expand Down
54 changes: 27 additions & 27 deletions test/mongorito.test.js
Expand Up @@ -686,29 +686,29 @@ describe ('Mongorito', function () {
yield* post.save();

hooks.length.should.equal(8);
hooks[0].should.equal('before:save');
hooks[1].should.equal('around:save');
hooks[2].should.equal('before:create');
hooks[3].should.equal('around:create');
hooks[4].should.equal('around:save');
hooks[5].should.equal('after:save');
hooks[6].should.equal('around:create');
hooks[7].should.equal('after:create');
hooks[0].should.equal('before:create');
hooks[1].should.equal('around:create');
hooks[2].should.equal('before:save');
hooks[3].should.equal('around:save');
hooks[4].should.equal('around:create');
hooks[5].should.equal('after:create');
hooks[6].should.equal('around:save');
hooks[7].should.equal('after:save');

hooks = [];

post.set('title', 'New title');
yield* post.save();

hooks.length.should.equal(8);
hooks[0].should.equal('before:save');
hooks[1].should.equal('around:save');
hooks[2].should.equal('before:update');
hooks[3].should.equal('around:update');
hooks[4].should.equal('around:save');
hooks[5].should.equal('after:save');
hooks[6].should.equal('around:update');
hooks[7].should.equal('after:update');
hooks[0].should.equal('before:update');
hooks[1].should.equal('around:update');
hooks[2].should.equal('before:save');
hooks[3].should.equal('around:save');
hooks[4].should.equal('around:update');
hooks[5].should.equal('after:update');
hooks[6].should.equal('around:save');
hooks[7].should.equal('after:save');

hooks = [];

Expand Down Expand Up @@ -847,17 +847,17 @@ describe ('Mongorito', function () {
yield* post.save();

hooks.length.should.equal(11);
hooks[0].should.equal('beforeSave');
hooks[1].should.equal('firstBeforeCreate');
hooks[2].should.equal('secondBeforeCreate');
hooks[3].should.equal('firstAroundCreate');
hooks[4].should.equal('secondAroundCreate');
hooks[5].should.equal('afterSave');
hooks[6].should.equal('secondAroundCreate');
hooks[7].should.equal('firstAroundCreate');
hooks[8].should.equal('firstAfterCreate');
hooks[9].should.equal('secondAfterCreate');
hooks[10].should.equal('thirdAfterCreate');
hooks[0].should.equal('firstBeforeCreate');
hooks[1].should.equal('secondBeforeCreate');
hooks[2].should.equal('firstAroundCreate');
hooks[3].should.equal('secondAroundCreate');
hooks[4].should.equal('beforeSave');
hooks[5].should.equal('secondAroundCreate');
hooks[6].should.equal('firstAroundCreate');
hooks[7].should.equal('firstAfterCreate');
hooks[8].should.equal('secondAfterCreate');
hooks[9].should.equal('thirdAfterCreate');
hooks[10].should.equal('afterSave');
});

it ('skip selected middleware', function * () {
Expand Down

0 comments on commit 550ae74

Please sign in to comment.