From 2ac1e06ac304f979b5c7a20ff0407e68304548ed Mon Sep 17 00:00:00 2001 From: Austen Collins Date: Sun, 18 Oct 2015 16:24:44 -0700 Subject: [PATCH] plugins: sequential promises not working --- lib/Jaws.js | 4 +--- tests/cli/TestPlugins.js | 37 ++++++++++++++++++++----------------- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/lib/Jaws.js b/lib/Jaws.js index e485f3fcf..783523905 100644 --- a/lib/Jaws.js +++ b/lib/Jaws.js @@ -149,13 +149,11 @@ class Jaws { if (config && config.handler) { _this[config.handler] = function() { - // ADD TO QUEUE? + // Add to queue _this._queue.concat(_this.hooks[config.handler + 'Pre']); _this._queue.push(_this.actions[config.handler].apply(_this, arguments)); _this._queue.concat(_this.hooks[config.handler + 'Post']); - console.log(_this._queue) - return _this._executeQueue(); } diff --git a/tests/cli/TestPlugins.js b/tests/cli/TestPlugins.js index b6644757f..61045426a 100644 --- a/tests/cli/TestPlugins.js +++ b/tests/cli/TestPlugins.js @@ -13,6 +13,7 @@ let JAWS = require('../../lib/Jaws.js'), utils = require('../../lib/utils'), assert = require('chai').assert, shortid = require('shortid'), + Promise = require('bluebird'), config = require('../config'); /** @@ -72,16 +73,17 @@ class PromisePlugin extends JawsPlugin { */ _actionProjectCreate(options) { - - let _this = this; - return new Promise(function(resolve, reject) { - return setTimeout(function() { - _this.Jaws.generatorPluginHookAction = true; - console.log(options); - return resolve(); - }, 500); - }) + + var deferred = Promise.pending(); + + setTimeout(function() { + _this.Jaws.generatorPluginAction = true; + console.log(options); + deferred.resolve(); + }, 500); + + return deferred.promise; } _hookPreProjectCreate() { @@ -94,13 +96,14 @@ class PromisePlugin extends JawsPlugin { _hookPostProjectCreate() { let _this = this; - return new Promise(function(resolve, reject) { - return setTimeout(function() { - _this.Jaws.generatorPluginHookPost = true; - console.log('asjfalsjfl') - return resolve(); - }, 500); - }) + var deferred = Promise.pending(); + setTimeout(function() { + _this.Jaws.generatorPluginHookPost = true; + console.log('post hook resolved'); + deferred.resolve(); + }, 500); + + return deferred.promise; } } @@ -132,7 +135,7 @@ describe('Test Promise Plugins', function() { .then(function() { assert.isTrue(Jaws.generatorPluginHookPre); assert.isTrue(Jaws.generatorPluginHookPost); - assert.isTrue(Jaws.generatorPluginHookAction); + assert.isTrue(Jaws.generatorPluginAction); done(); }) .catch(function(e) {