/
test.js
93 lines (77 loc) · 1.81 KB
/
test.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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
var assert = require('assert');
var semver = require('semver');
var requireAll = require('..');
var controllers = requireAll({
dirname: __dirname + '/controllers',
filter: /(.+Controller)\.js$/
});
assert.deepEqual(controllers, {
'main-Controller': {
index: 1,
show: 2,
add: 3,
edit: 4
},
'other-Controller': {
index: 1,
show: 'nothing'
}
});
//
// requiring json only became an option in 0.6+
//
if (semver.gt(process.version, 'v0.6.0')) {
var mydir = requireAll({
dirname: __dirname + '/mydir',
filter: /(.+)\.(js|json)$/
});
var mydir_contents = {
foo: 'bar',
hello: {
world: true,
universe: 42
},
sub: {
config: {
settingA: 'A',
settingB: 'B'
},
yes: true
}
};
assert.deepEqual(mydir, mydir_contents);
var defaults = requireAll(__dirname + '/mydir');
assert.deepEqual(defaults, mydir_contents);
}
var unfiltered = requireAll({
dirname: __dirname + '/filterdir',
filter: /(.+)\.js$/
});
assert(unfiltered['.svn']);
assert(unfiltered.root);
assert(unfiltered.sub);
var excludedSvn = requireAll({
dirname: __dirname + '/filterdir',
filter: /(.+)\.js$/,
excludeDirs: /^\.svn$/
});
assert.equal(excludedSvn['.svn'], undefined);
assert.ok(excludedSvn.root);
assert.ok(excludedSvn.sub);
var excludedSvnAndSub = requireAll({
dirname: __dirname + '/filterdir',
filter: /(.+)\.js$/,
excludeDirs: /^(\.svn|sub)$/
});
assert.equal(excludedSvnAndSub['.svn'], undefined);
assert.ok(excludedSvnAndSub.root);
assert.equal(excludedSvnAndSub.sub, undefined);
var resolvedValues = requireAll({
dirname: __dirname + '/resolved',
filter: /(.+)\.js$/,
resolve: function (fn) {
return fn('arg1', 'arg2');
}
});
assert.equal(resolvedValues.onearg, 'arg1');
assert.equal(resolvedValues.twoargs, 'arg2');