UNPKG

846 BJavaScriptView Raw
1var _ = require('lodash');
2var fs = require('fs');
3
4module.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};