diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-05-02 16:24:20 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-05-02 16:24:20 +0200 |
commit | c87060454ec8bbc89d7acdd5c7ef9006242a6930 (patch) | |
tree | b797249772f79ea00c1cbae26c2e47b0b156b1c4 /lib/models/__tests__/pluginDependency.js | |
parent | bbba52c7fff66d3b5aafe6d59de575afaca67db7 (diff) | |
download | gitbook-c87060454ec8bbc89d7acdd5c7ef9006242a6930.zip gitbook-c87060454ec8bbc89d7acdd5c7ef9006242a6930.tar.gz gitbook-c87060454ec8bbc89d7acdd5c7ef9006242a6930.tar.bz2 |
Add model for plugin dependencies in the book.json
Diffstat (limited to 'lib/models/__tests__/pluginDependency.js')
-rw-r--r-- | lib/models/__tests__/pluginDependency.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/models/__tests__/pluginDependency.js b/lib/models/__tests__/pluginDependency.js new file mode 100644 index 0000000..70f643b --- /dev/null +++ b/lib/models/__tests__/pluginDependency.js @@ -0,0 +1,47 @@ +describe('PluginDependency', function() { + var PluginDependency = require('../pluginDependency'); + + describe('createFromString', function() { + it('must parse name', function() { + var plugin = PluginDependency.createFromString('hello'); + expect(plugin.getName()).toBe('hello'); + expect(plugin.getVersion()).toBe('*'); + }); + + it('must parse state', function() { + var plugin = PluginDependency.createFromString('-hello'); + expect(plugin.getName()).toBe('hello'); + expect(plugin.isEnabled()).toBe(false); + }); + + describe('Version', function() { + it('must parse version', function() { + var plugin = PluginDependency.createFromString('hello@1.0.0'); + expect(plugin.getName()).toBe('hello'); + expect(plugin.getVersion()).toBe('1.0.0'); + }); + + it('must parse semver', function() { + var plugin = PluginDependency.createFromString('hello@>=4.0.0'); + expect(plugin.getName()).toBe('hello'); + expect(plugin.getVersion()).toBe('>=4.0.0'); + }); + }); + + describe('GIT Version', function() { + it('must handle HTTPS urls', function() { + var plugin = PluginDependency.createFromString('hello@', 'great@git+https://github.com/GitbookIO/plugin-ga.git'); + expect(plugin.getName()).toBe('hello'); + expect(plugin.getVersion()).toBe('git+https://github.com/GitbookIO/plugin-ga.git'); + }); + + it('must handle SSH urls', function() { + var plugin = PluginDependency.createFromString('hello@', 'great@git+ssh://samy@github.com/GitbookIO/plugin-ga.git'); + expect(plugin.getName()).toBe('hello'); + expect(plugin.getVersion()).toBe('git+ssh://samy@github.com/GitbookIO/plugin-ga.git'); + }); + }); + }); +}); + + |