diff --git a/.gitignore b/.gitignore index 93f1361..05ade97 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules npm-debug.log +.idea diff --git a/lib/wrench.js b/lib/wrench.js index cc5c18b..adec9a6 100644 --- a/lib/wrench.js +++ b/lib/wrench.js @@ -71,15 +71,16 @@ exports.readdirRecursive = function(baseDir, fn) { var waitCount = 0; function readdirRecursive(curDir) { - var files = [], - curFiles, - nextDirs, - prependcurDir = function(fname){ - return _path.join(curDir, fname); - }; + var prependcurDir = function(fname){ + return _path.join(curDir, fname); + }; waitCount++; fs.readdir(curDir, function(e, curFiles) { + if (e) { + fn(e); + return; + } waitCount--; curFiles = curFiles.map(prependcurDir); diff --git a/tests/readdir.js b/tests/readdir.js index 2460203..5e8abf0 100644 --- a/tests/readdir.js +++ b/tests/readdir.js @@ -46,6 +46,15 @@ module.exports = testCase({ checkResult(test, allFiles); } }); + }, + + test_readdirRecursiveWithNonExistentDirectory: function(test) { + wrench.readdirRecursive('', function (e, files) { + test.ok(e); + test.equal(e.code, 'ENOENT'); + test.equal(files, null); + test.done(); + }); } });