readdir.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. var testCase = require('nodeunit').testCase;
  2. var fs = require('fs');
  3. var wrench = require('../lib/wrench');
  4. var path = require('path');
  5. function checkResult(test, files) {
  6. var check = [
  7. 'bar.txt',
  8. 'foo',
  9. path.join('foo', 'bar'),
  10. path.join('foo', 'dolor.md'),
  11. path.join('foo', 'lorem.txt'),
  12. path.join('foo', 'bar', 'ipsum.js')
  13. ];
  14. test.deepEqual(files, check);
  15. test.done();
  16. }
  17. module.exports = testCase({
  18. test_readdirSyncRecursive: function(test) {
  19. var dir = path.join(__dirname, 'readdir');
  20. test.ok(fs.existsSync(dir), 'Folders should exist');
  21. var files = wrench.readdirSyncRecursive(dir);
  22. checkResult(test, files);
  23. },
  24. test_readdirRecursive: function(test) {
  25. var dir = path.join(__dirname, 'readdir');
  26. test.ok(fs.existsSync(dir), 'Folders should exist');
  27. var allFiles = [];
  28. wrench.readdirRecursive(dir, function(e, files) {
  29. if (e) throw e;
  30. if (files) {
  31. allFiles = allFiles.concat(files);
  32. } else {
  33. checkResult(test, allFiles);
  34. }
  35. });
  36. },
  37. test_readdirRecursiveWithNonExistentDirectory: function(test) {
  38. wrench.readdirRecursive('', function (e, files) {
  39. test.ok(e);
  40. test.equal(e.code, 'ENOENT');
  41. test.equal(files, null);
  42. test.done();
  43. });
  44. }
  45. });
  46. // vim: et ts=4 sw=4