summaryrefslogtreecommitdiffstats
path: root/test/plugin.js
blob: fcde67ce92a2eb75aaa3f2bae1f623035dda3746 (plain)
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
47
48
49
50
51
52
53
54
55
56
57
58
var _ = require('lodash');
var path = require('path');
var assert = require('assert');

var Plugin = require('../').generate.Plugin;

describe('Plugin validation', function () {
    var plugin = new Plugin("plugin", __dirname);

    it('should be valid', function() {
        assert(plugin.isValid());
    });
});

describe('Plugins list', function () {
    var firstDefault = _.first(Plugin.defaults);

    it('should convert string to array', function() {
        var _name = "test";
        assert(_.contains(Plugin.normalizeNames(_name), _name));
    });

    it('should contains default plugins', function() {
        assert(_.contains(Plugin.normalizeNames([]), firstDefault));
    });

    it('should remove name starting with -', function() {
        assert(!_.contains(Plugin.normalizeNames(["-"+firstDefault]), firstDefault));
    });

    it('should accept version', function() {
        var _name = "test@0.3.0,exercises@1.2.0,test2";
        var plugins = Plugin.normalizeList(_name);

        assert(_.find(plugins, {'name': "test"}).version = "0.3.0");
        assert(_.find(plugins, {'name': "exercises"}).version = "1.2.0");
        assert(!_.find(plugins, {'name': "test2"}).version);
    });
});

describe('Plugin defaults loading', function () {
    var ret = true;

    beforeEach(function(done){
        Plugin.fromList(Plugin.defaults, __dirname)
        .then(function(_r) {
            ret = _r;
        }, function(err) {
            ret = null;
        })
        .fin(done);
    });


    it('should load defaults addons', function() {
        assert(ret != null);
    });
});