summaryrefslogtreecommitdiffstats
path: root/lib/plugins/__tests__
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-06-10 16:44:13 +0200
committerSamy Pessé <samypesse@gmail.com>2016-06-10 16:44:13 +0200
commit94d4234cb8523d080cfba87b4a51e3ebcffc4159 (patch)
treed5a12b3ec07dd4f0a89b27ee4071cbb8415b9643 /lib/plugins/__tests__
parentb9fe60915f8555fb339a8e736a0b1fa604738364 (diff)
parentfbc851bc4e21e30490fea508758856dab3f22037 (diff)
downloadgitbook-94d4234cb8523d080cfba87b4a51e3ebcffc4159.zip
gitbook-94d4234cb8523d080cfba87b4a51e3ebcffc4159.tar.gz
gitbook-94d4234cb8523d080cfba87b4a51e3ebcffc4159.tar.bz2
Merge branch 'fix/plugins_order'
Diffstat (limited to 'lib/plugins/__tests__')
-rw-r--r--lib/plugins/__tests__/listAll.js30
-rw-r--r--lib/plugins/__tests__/sortPlugins.js63
2 files changed, 45 insertions, 48 deletions
diff --git a/lib/plugins/__tests__/listAll.js b/lib/plugins/__tests__/listAll.js
index f9711a7..6a08c84 100644
--- a/lib/plugins/__tests__/listAll.js
+++ b/lib/plugins/__tests__/listAll.js
@@ -1,36 +1,38 @@
var PluginDependency = require('../../models/pluginDependency');
var listAll = require('../listAll');
+var toNames = require('../toNames');
describe('listAll', function() {
it('must list default', function() {
var deps = PluginDependency.listFromString('ga,great');
var plugins = listAll(deps);
+ var names = toNames(plugins);
- expect(plugins.size).toBe(8);
-
- expect(plugins.has('ga')).toBe(true);
- expect(plugins.has('great')).toBe(true);
-
- expect(plugins.has('search')).toBe(true);
+ expect(names).toEqual([
+ 'ga', 'great',
+ 'highlight', 'search', 'lunr', 'sharing', 'fontsettings',
+ 'theme-default' ]);
});
it('must list from array with -', function() {
var deps = PluginDependency.listFromString('ga,-great');
var plugins = listAll(deps);
+ var names = toNames(plugins);
- expect(plugins.size).toBe(7);
-
- expect(plugins.has('ga')).toBe(true);
- expect(plugins.has('great')).toBe(false);
+ expect(names).toEqual([
+ 'ga',
+ 'highlight', 'search', 'lunr', 'sharing', 'fontsettings',
+ 'theme-default' ]);
});
it('must remove default plugins using -', function() {
var deps = PluginDependency.listFromString('ga,-search');
var plugins = listAll(deps);
+ var names = toNames(plugins);
- expect(plugins.size).toBe(6);
-
- expect(plugins.has('ga')).toBe(true);
- expect(plugins.has('search')).toBe(false);
+ expect(names).toEqual([
+ 'ga',
+ 'highlight', 'lunr', 'sharing', 'fontsettings',
+ 'theme-default' ]);
});
});
diff --git a/lib/plugins/__tests__/sortPlugins.js b/lib/plugins/__tests__/sortPlugins.js
index c50c851..4aa26a3 100644
--- a/lib/plugins/__tests__/sortPlugins.js
+++ b/lib/plugins/__tests__/sortPlugins.js
@@ -1,50 +1,45 @@
-var PluginDependency = require('../../models/pluginDependency');
+var Immutable = require('immutable');
+
+var Plugin = require('../../models/plugin');
var sortPlugins = require('../sortPlugins');
-var listAll = require('../listAll');
+var toNames = require('../toNames');
describe('sortPlugins', function() {
it('must load themes after plugins', function() {
- var deps = PluginDependency.listFromString('theme-faq'),
- allPlugins = listAll(deps);
+ var allPlugins = Immutable.OrderedMap([
+ ['hello', Plugin.createFromString('hello')],
+ ['theme-test', Plugin.createFromString('theme-test')],
+ ['world', Plugin.createFromString('world')]
+ ]);
- var sorted = sortPlugins(allPlugins, []);
- var names = sorted
- .map(function(plugin) {
- return plugin.getName();
- })
- .toArray();
+ var sorted = sortPlugins(allPlugins);
+ var names = toNames(sorted);
expect(names).toEqual([
- 'fontsettings',
- 'sharing',
- 'lunr',
- 'search',
- 'highlight',
- 'theme-faq',
- 'theme-default'
+ 'hello',
+ 'world',
+ 'theme-test'
]);
});
- it('must load themes after plugins with a complex dependencies list', function() {
- var deps = PluginDependency.listFromString('comment,theme-faq,-search,ga'),
- allPlugins = listAll(deps);
+ it('must keep order of themes', function() {
+ var allPlugins = Immutable.OrderedMap([
+ ['theme-test', Plugin.createFromString('theme-test')],
+ ['theme-test1', Plugin.createFromString('theme-test1')],
+ ['hello', Plugin.createFromString('hello')],
+ ['theme-test2', Plugin.createFromString('theme-test2')],
+ ['world', Plugin.createFromString('world')]
+ ]);
- var sorted = sortPlugins(allPlugins, []);
- var names = sorted
- .map(function(plugin) {
- return plugin.getName();
- })
- .toArray();
+ var sorted = sortPlugins(allPlugins);
+ var names = toNames(sorted);
expect(names).toEqual([
- 'ga',
- 'comment',
- 'fontsettings',
- 'sharing',
- 'lunr',
- 'highlight',
- 'theme-faq',
- 'theme-default'
+ 'hello',
+ 'world',
+ 'theme-test',
+ 'theme-test1',
+ 'theme-test2'
]);
});
}); \ No newline at end of file