-
Notifications
You must be signed in to change notification settings - Fork 7
/
index.js
83 lines (79 loc) · 2.9 KB
/
index.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
/*
Copyright 2014 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
https://github.com/yahoo/es-dependency-graph/blob/master/LICENSE.md
*/
var graph = require('../dist/index'),
path = require('path'),
fs = require('fs'),
esprima = require('esprima-fb'),
expect = require('chai').expect;
describe('graph', function () {
it('deals with AST objects correctly', function () {
var dir = path.join(__dirname, 'assets/'),
result = fs.readdirSync(dir)
.map(function (file) {
return path.join(dir, file);
})
.filter(function (file) {
return fs.statSync(file).isFile();
})
.map(function (file) {
return graph(esprima.parse(fs.readFileSync(file, 'utf8')));
});
expect(result)
.to.deep.equal([
['module2', 'module3', 'module4']
]);
});
describe('with includeBindings set to: false', function () {
it('parses several modules correctly', function () {
var dir = path.join(__dirname, 'assets/'),
result = fs.readdirSync(dir).map(function (file) {
return path.join(dir, file);
}).filter(function (file) {
return fs.statSync(file).isFile();
}).map(function (file) {
return graph(fs.readFileSync(file, 'utf8'), {
includeBindings: false
});
});
expect(result)
.to.deep.equal([
['module2', 'module3', 'module4']
]);
});
});
describe('with includeBindings set to: true', function () {
it('parses several modules correctly', function () {
var dir = path.join(__dirname, 'assets/'),
result = fs.readdirSync(dir).map(function (file) {
return path.join(dir, file);
}).filter(function (file) {
return fs.statSync(file).isFile();
}).map(function (file) {
return graph(fs.readFileSync(file, 'utf8'), {
includeBindings: true
});
});
expect(result)
.to.deep.equal([
{
imports: {
module2: ['foo'],
module3: ['default'],
module4: ['foo']
},
exports: [
'bar',
'baz',
'hello',
'asdf',
'qwer',
'default'
]
}
]);
});
});
});