forked from skygragon/leetcode-cli
-
Notifications
You must be signed in to change notification settings - Fork 51
/
Copy pathtest_plugin.js
46 lines (39 loc) · 1.25 KB
/
test_plugin.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
var _ = require('underscore');
var assert = require('chai').assert;
var rewire = require('rewire');
var log = require('../lib/log');
var Plugin = rewire('../lib/plugin');
var h = rewire('../lib/helper');
describe('plugin', function() {
var cache = new Plugin('cache', 'Cache', '1.0', '');
var leetcode = new Plugin('leetcode', 'Leetcode', '2.0', '');
var retry = new Plugin('retry', 'Retry', '3.0', '');
var core = new Plugin('core', 'Core', '4.0', '');
before(function() {
log.init();
var noop = function() {};
cache.init = noop;
leetcode.init = noop;
retry.init = noop;
core.init = noop;
h.getDirData = function() {
return [
{name: 'cache', data: cache},
{name: 'leetcode', data: leetcode},
{name: 'retry', data: retry},
{name: 'core', data: core},
{name: 'bad', data: null}
];
};
Plugin.__set__('h', h);
});
it('should init ok', function() {
assert.deepEqual(_.keys(Plugin.plugins), []);
Plugin.init(core);
assert.deepEqual(_.keys(Plugin.plugins), ['cache', 'leetcode', 'retry', 'core']);
assert.equal(core.next, retry);
assert.equal(retry.next, cache);
assert.equal(cache.next, leetcode);
assert.equal(leetcode.next, null);
});
});