summaryrefslogtreecommitdiffstats
path: root/test/plugins.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/plugins.js')
-rw-r--r--test/plugins.js32
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');
+ });
+ });
});