1 | var _ = require('lodash');
|
2 | var fs = require('fs');
|
3 |
|
4 | module.exports = function getTestFiles(dir, ext) {
|
5 | if (dir.indexOf('node_modules') > -1) { return; }
|
6 | if (dir.indexOf('.git') > -1) { return; }
|
7 |
|
8 | var files = [];
|
9 | try {
|
10 | files = fs.readdirSync(dir);
|
11 | } catch (e) {
|
12 | files = [];
|
13 | }
|
14 |
|
15 | return files
|
16 | .map(function(file) {
|
17 | var path = dir + file;
|
18 |
|
19 | try {
|
20 | var stats = fs.statSync(path);
|
21 | if (stats.isDirectory()) { return getTestFiles(path + '/', ext); }
|
22 | if (file.indexOf(ext) > -1) { return { file, path }; }
|
23 | return null;
|
24 | }
|
25 | catch (e) {
|
26 | return null;
|
27 | }
|
28 | })
|
29 | .filter(function(x) { return x; })
|
30 | .reduce(function(prev, cur) {
|
31 | if (_.isArray(cur)) {
|
32 | return prev.concat(cur);
|
33 | } else {
|
34 | return prev.concat([cur]);
|
35 | }
|
36 | }, []);
|
37 | };
|