Skip to content

Commit 128a3a1

Browse files
committed
CJS/ES6: Tests for lazy requires and precinct bump
Refs dependents/node-precinct#30
1 parent 9c7fb53 commit 128a3a1

File tree

2 files changed

+89
-1
lines changed

2 files changed

+89
-1
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
"keywords": [
1717
"dependency",
1818
"tree",
19+
"graph",
1920
"module",
2021
"requirejs",
2122
"AMD",
@@ -33,7 +34,7 @@
3334
"commander": "~2.6.0",
3435
"debug": "~2.2.0",
3536
"filing-cabinet": "^1.5.0",
36-
"precinct": "^3.3.0"
37+
"precinct": "^3.5.0"
3738
},
3839
"devDependencies": {
3940
"babel": "~5.8.38",

test/test.js

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -679,4 +679,91 @@ describe('dependencyTree', function() {
679679
assert.ok(!has3rdPartyDep);
680680
});
681681
});
682+
683+
describe('when given a CJS file with lazy requires', function() {
684+
beforeEach(function() {
685+
mockfs({
686+
[__dirname + '/cjs']: {
687+
'foo.js': 'module.exports = function(bar = require("./bar")) {};',
688+
'bar.js': 'module.exports = 1;'
689+
}
690+
});
691+
});
692+
693+
it('includes the lazy dependency', function() {
694+
const directory = __dirname + '/cjs';
695+
const filename = directory + '/foo.js';
696+
697+
const tree = dependencyTree({filename, directory});
698+
const subTree = tree[filename];
699+
700+
assert.ok(`${directory}/bar.js` in subTree);
701+
});
702+
});
703+
704+
describe('when given an es6 file using CJS lazy requires', function() {
705+
beforeEach(function() {
706+
mockfs({
707+
[__dirname + '/es6']: {
708+
'foo.js': 'export default function(bar = require("./bar")) {};',
709+
'bar.js': 'export default 1;'
710+
}
711+
});
712+
});
713+
714+
describe('and mixedImport mode is turned on', function() {
715+
it('includes the lazy dependency', function() {
716+
const directory = __dirname + '/es6';
717+
const filename = directory + '/foo.js';
718+
719+
const tree = dependencyTree({
720+
filename,
721+
directory,
722+
detective: {
723+
es6: {
724+
mixedImports: true
725+
}
726+
}
727+
});
728+
729+
const subTree = tree[filename];
730+
731+
assert.ok(`${directory}/bar.js` in subTree);
732+
});
733+
734+
it('also works for toList', function() {
735+
const directory = __dirname + '/es6';
736+
const filename = directory + '/foo.js';
737+
738+
const results = dependencyTree.toList({
739+
filename,
740+
directory,
741+
detective: {
742+
es6: {
743+
mixedImports: true
744+
}
745+
}
746+
});
747+
748+
assert.equal(results[0], `${directory}/bar.js`);
749+
assert.equal(results[1], filename);
750+
});
751+
});
752+
753+
describe('and mixedImport mode is turned off', function() {
754+
it('does not include the lazy dependency', function() {
755+
const directory = __dirname + '/es6';
756+
const filename = directory + '/foo.js';
757+
758+
const tree = dependencyTree({
759+
filename,
760+
directory
761+
});
762+
763+
const subTree = tree[filename];
764+
765+
assert.ok(!(`${directory}/bar.js` in subTree));
766+
});
767+
});
768+
});
682769
});

0 commit comments

Comments
 (0)