diff options
Diffstat (limited to 'lib/plugins')
-rw-r--r-- | lib/plugins/__tests__/listAll.js | 30 | ||||
-rw-r--r-- | lib/plugins/__tests__/sortPlugins.js | 16 | ||||
-rw-r--r-- | lib/plugins/listAll.js | 2 | ||||
-rw-r--r-- | lib/plugins/sortPlugins.js | 16 | ||||
-rw-r--r-- | lib/plugins/toNames.js | 16 |
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; |