mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-16 23:55:20 +00:00
70 lines
2.1 KiB
JavaScript
70 lines
2.1 KiB
JavaScript
var mock = require('./mock');
|
|
var registry = require('../lib/plugins/registry');
|
|
var Output = require('../lib/output/base');
|
|
var PluginsManager = require('../lib/plugins');
|
|
|
|
describe('Plugins', function() {
|
|
var book;
|
|
|
|
before(function() {
|
|
return mock.setupBook({})
|
|
.then(function(_book) {
|
|
book = _book;
|
|
});
|
|
});
|
|
|
|
describe('Resolve Version', function() {
|
|
it('should resolve a plugin version', function() {
|
|
return registry.resolve('ga')
|
|
.should.be.fulfilled();
|
|
});
|
|
});
|
|
|
|
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')
|
|
.should.be.fulfilled();
|
|
});
|
|
|
|
it('should install a plugin from NPM with a specific version', function() {
|
|
return registry.install(book, 'ga', '1.0.0')
|
|
.should.be.fulfilled();
|
|
});
|
|
|
|
it('should correctly install all dependencies (if none)', function() {
|
|
return mock.setupBook({})
|
|
.then(function(book) {
|
|
var plugins = new PluginsManager(book);
|
|
return plugins.install()
|
|
.should.be.fulfilledWith(0);
|
|
});
|
|
});
|
|
|
|
it('should correctly install all dependencies (if any)', function() {
|
|
return mock.setupBook({
|
|
'book.json': {
|
|
plugins: ['ga']
|
|
}
|
|
})
|
|
.then(function(book) {
|
|
return book.config.load()
|
|
.then(function() {
|
|
var plugins = new PluginsManager(book);
|
|
return plugins.install();
|
|
});
|
|
})
|
|
.should.be.fulfilledWith(1);
|
|
});
|
|
});
|
|
});
|
|
|