diff options
Diffstat (limited to 'test/plugins.js')
-rw-r--r-- | test/plugins.js | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/test/plugins.js b/test/plugins.js index 47f9314..a525a7b 100644 --- a/test/plugins.js +++ b/test/plugins.js @@ -1,7 +1,13 @@ +var path = require('path'); + var mock = require('./mock'); var registry = require('../lib/plugins/registry'); var Output = require('../lib/output/base'); +var error = require('../lib/utils/error'); var PluginsManager = require('../lib/plugins'); +var BookPlugin = require('../lib/plugins/plugin'); + +var PLUGINS_ROOT = path.resolve(__dirname, 'node_modules'); describe('Plugins', function() { var book; @@ -20,15 +26,6 @@ describe('Plugins', function() { }); }); - describe('Loading', function() { - it('should load default plugins', function() { - return mock.outputDefaultBook(Output) - .then(function(output) { - output.plugins.count().should.be.greaterThan(0); - }); - }); - }); - describe('Installation', function() { it('should install a plugin from NPM without a specific version', function() { return registry.install(book, 'ga') @@ -65,5 +62,22 @@ describe('Plugins', function() { .should.be.fulfilledWith(1); }); }); + + describe('Loading', function() { + it('should load default plugins', function() { + return mock.outputDefaultBook(Output) + .then(function(output) { + output.plugins.count().should.be.greaterThan(0); + }); + }); + }); + + describe('Configuration', function() { + it('should fail loading a plugin with an invalid configuration', function() { + var plugin = new BookPlugin(book, 'test-config'); + return plugin.load(PLUGINS_ROOT) + .should.be.rejectedWith('Error with book\'s configuration: pluginsConfig.test-config.myProperty is required'); + }); + }); }); |