Skip to content

Commit

Permalink
failing test for optional callbacks
Browse files Browse the repository at this point in the history
  • Loading branch information
James Halliday committed Jul 9, 2011
1 parent 29070fd commit 8f3a995
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 18 deletions.
33 changes: 18 additions & 15 deletions index.js
Expand Up @@ -64,22 +64,25 @@ function find (base, cb) {
return em;
};

exports.findSync = function findSync (dir) {
if (!fs.statSync(dir).isDirectory()) return [dir];
exports.findSync = function findSync (dir, cb) {
var rootStat = fs.statSync(dir);
if (!rootStat.isDirectory()) {
if (cb) cb(dir, rootStat);
return [dir];
}

return fs.readdirSync(dir)
.reduce(function (files, file) {
var p = dir + '/' + file;
var stat = fs.statSync(p);
files.push(p);

if (stat.isDirectory()) {
files.push.apply(files, findSync(p));
}

return files;
}, [])
;
return fs.readdirSync(dir).reduce(function (files, file) {
var p = dir + '/' + file;
var stat = fs.statSync(p);
if (cb) cb(file, stat);
files.push(p);

if (stat.isDirectory()) {
files.push.apply(files, findSync(p, cb));
}

return files;
}, []);
};

exports.find.sync = exports.findSync;
14 changes: 14 additions & 0 deletions test/cb.js
@@ -0,0 +1,14 @@
var assert = require('assert');
var find = require('../');

exports.cbSync = function () {
var files = [];
var dirs = [];
find.sync(__dirname + '/foo', function (file, stat) {
if (stat.isDirectory()) dirs.push(file)
else files.push(file)
});

assert.deepEqual(dirs, [ 'a', 'a/b', 'a/b/c' ]);
assert.deepEqual(files, [ 'x', 'a/y', 'a/b/z', 'a/b/c/w' ]);
};
4 changes: 2 additions & 2 deletions test/foo.js
@@ -1,6 +1,6 @@
var assert = require('assert');
var find = require('findit').find;
var findSync = require('findit').findSync;
var find = require('../').find;
var findSync = require('../').findSync;

exports.foo = function () {
var to = setTimeout(function () {
Expand Down
2 changes: 1 addition & 1 deletion test/module.js
@@ -1,5 +1,5 @@
var assert = require('assert');
var find = require('findit');
var find = require('../');

exports.module = function () {
assert.eql(find.findSync, find.find.sync);
Expand Down

0 comments on commit 8f3a995

Please sign in to comment.