diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-06-10 16:44:13 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-06-10 16:44:13 +0200 |
commit | 94d4234cb8523d080cfba87b4a51e3ebcffc4159 (patch) | |
tree | d5a12b3ec07dd4f0a89b27ee4071cbb8415b9643 /lib/plugins/__tests__ | |
parent | b9fe60915f8555fb339a8e736a0b1fa604738364 (diff) | |
parent | fbc851bc4e21e30490fea508758856dab3f22037 (diff) | |
download | gitbook-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.js | 30 | ||||
-rw-r--r-- | lib/plugins/__tests__/sortPlugins.js | 63 |
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 |