makedir.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. var fs = require('fs'),
  2. path = require('path'),
  3. vfs = require('../lib/fs'),
  4. TEST_DIR = path.join(__dirname, 'test-dir');
  5. module.exports = {
  6. setUp : function(done) {
  7. fs.mkdirSync(TEST_DIR);
  8. done();
  9. },
  10. tearDown : function(done) {
  11. fs.rmdirSync(TEST_DIR);
  12. done();
  13. },
  14. 'should make directory' : function(test) {
  15. var dir = path.join(TEST_DIR, 'a');
  16. vfs.makeDir(dir)
  17. .then(
  18. function() {
  19. return vfs.exists(dir);
  20. },
  21. function() {
  22. test.ok(false);
  23. })
  24. .always(function(promise) {
  25. test.ok(promise.valueOf());
  26. test.ok(fs.statSync(dir).isDirectory());
  27. fs.rmdirSync(dir);
  28. test.done();
  29. });
  30. },
  31. 'should make directory if exists' : function(test) {
  32. var dir = path.join(TEST_DIR, 'a');
  33. fs.mkdirSync(dir);
  34. vfs.makeDir(dir)
  35. .then(
  36. function() {
  37. return vfs.exists(dir);
  38. },
  39. function() {
  40. test.ok(false);
  41. })
  42. .always(function(promise) {
  43. test.ok(promise.valueOf());
  44. test.ok(fs.statSync(dir).isDirectory());
  45. fs.rmdirSync(dir);
  46. test.done();
  47. });
  48. },
  49. 'should be failed if directory exists' : function(test) {
  50. var dir = path.join(TEST_DIR, 'a');
  51. fs.mkdirSync(dir);
  52. vfs.makeDir(dir, true)
  53. .then(
  54. function() {
  55. test.ok(false);
  56. },
  57. function() {
  58. test.ok(true);
  59. })
  60. .always(function() {
  61. fs.rmdirSync(dir);
  62. test.done();
  63. });
  64. },
  65. 'should be failed if file with same name exists' : function(test) {
  66. var dir = path.join(TEST_DIR, 'test-file');
  67. fs.writeFileSync(dir, 'test');
  68. vfs.makeDir(dir)
  69. .then(
  70. function() {
  71. test.ok(false);
  72. },
  73. function() {
  74. test.ok(true);
  75. })
  76. .always(function() {
  77. fs.unlinkSync(path.join(TEST_DIR, 'test-file'));
  78. test.done();
  79. });
  80. },
  81. 'should make directory tree' : function(test) {
  82. var dir = path.join(TEST_DIR, 'a/b/c');
  83. vfs.makeDir(dir)
  84. .then(
  85. function() {
  86. return vfs.exists(dir);
  87. },
  88. function() {
  89. test.ok(false);
  90. })
  91. .always(function(promise) {
  92. test.ok(promise.valueOf());
  93. test.ok(fs.statSync(dir).isDirectory());
  94. fs.rmdirSync(path.join(TEST_DIR, 'a/b/c'));
  95. fs.rmdirSync(path.join(TEST_DIR, 'a/b'));
  96. fs.rmdirSync(path.join(TEST_DIR, 'a'));
  97. test.done();
  98. });
  99. },
  100. 'should make directory tree if exists' : function(test) {
  101. var dir = path.join(TEST_DIR, 'a/b/c');
  102. fs.mkdirSync(path.join(TEST_DIR, 'a'));
  103. fs.mkdirSync(path.join(TEST_DIR, 'a', 'b'));
  104. fs.mkdirSync(dir);
  105. vfs.makeDir(dir)
  106. .then(
  107. function() {
  108. test.ok(true);
  109. },
  110. function() {
  111. test.ok(false);
  112. })
  113. .always(function() {
  114. fs.rmdirSync(path.join(TEST_DIR, 'a/b/c'));
  115. fs.rmdirSync(path.join(TEST_DIR, 'a/b'));
  116. fs.rmdirSync(path.join(TEST_DIR, 'a'));
  117. test.done();
  118. });
  119. }
  120. };