summaryrefslogtreecommitdiffstats
path: root/lib/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'lib/plugins')
-rw-r--r--lib/plugins/__tests__/listAll.js30
-rw-r--r--lib/plugins/__tests__/sortPlugins.js16
-rw-r--r--lib/plugins/listAll.js2
-rw-r--r--lib/plugins/sortPlugins.js16
-rw-r--r--lib/plugins/toNames.js16
5 files changed, 35 insertions, 45 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 99955fb..4aa26a3 100644
--- a/lib/plugins/__tests__/sortPlugins.js
+++ b/lib/plugins/__tests__/sortPlugins.js
@@ -2,21 +2,9 @@ var Immutable = require('immutable');
var Plugin = require('../../models/plugin');
var sortPlugins = require('../sortPlugins');
+var toNames = require('../toNames');
-/**
- * Return list of plugin names
- * @param {OrderedMap<String:Plugin} plugins
- * @return {Array<String>}
- */
-function toNames(plugins) {
- return plugins
- .map(function(plugin) {
- return plugin.getName();
- })
- .toArray();
-}
-
-describe.only('sortPlugins', function() {
+describe('sortPlugins', function() {
it('must load themes after plugins', function() {
var allPlugins = Immutable.OrderedMap([
['hello', Plugin.createFromString('hello')],
diff --git a/lib/plugins/listAll.js b/lib/plugins/listAll.js
index bf5dfb8..70bf9cd 100644
--- a/lib/plugins/listAll.js
+++ b/lib/plugins/listAll.js
@@ -21,7 +21,7 @@ function listAll(deps) {
});
// Concat with default plugins
- deps = DEFAULT_PLUGINS.concat(deps);
+ deps = deps.concat(DEFAULT_PLUGINS);
// Convert to an ordered map of Plugin
var plugins = deps
diff --git a/lib/plugins/sortPlugins.js b/lib/plugins/sortPlugins.js
index ca8a8a7..155b691 100644
--- a/lib/plugins/sortPlugins.js
+++ b/lib/plugins/sortPlugins.js
@@ -1,7 +1,6 @@
var Immutable = require('immutable');
var THEME_PREFIX = require('../constants/themePrefix');
-var LOADING_ORDER = ['plugin', 'theme'];
var TYPE_PLUGIN = 'plugin';
var TYPE_THEME = 'theme';
@@ -32,21 +31,6 @@ function sortPlugins(plugins) {
.merge(
byTypes.get(TYPE_THEME, Immutable.OrderedMap())
);
-
-
-
- // Sort plugins to match list in book.json
- return plugins.sort(function(a, b) {
- // Get order from book.json
- var definitionOrder = requirementsKeys.indexOf(a.getName()) < requirementsKeys.indexOf(b.getName());
-
- // Get order from plugins a and b type
- var aType = pluginType(a.getName()),
- bType = pluginType(b.getName()),
- loadingOrder = LOADING_ORDER.indexOf(aType) < LOADING_ORDER.indexOf(bType);
-
- return loadingOrder || definitionOrder ? -1 : 1;
- });
}
module.exports = sortPlugins; \ No newline at end of file
diff --git a/lib/plugins/toNames.js b/lib/plugins/toNames.js
new file mode 100644
index 0000000..ad0dd8f
--- /dev/null
+++ b/lib/plugins/toNames.js
@@ -0,0 +1,16 @@
+
+/**
+ * Return list of plugin names. This method is nly used in unit tests.
+ *
+ * @param {OrderedMap<String:Plugin} plugins
+ * @return {Array<String>}
+ */
+function toNames(plugins) {
+ return plugins
+ .map(function(plugin) {
+ return plugin.getName();
+ })
+ .toArray();
+}
+
+module.exports = toNames;