74 lines
2.2 KiB
JavaScript
74 lines
2.2 KiB
JavaScript
var fs = require('fs'),
|
|
path = require('path'),
|
|
vfs = require('../lib/fs'),
|
|
TEST_DIR = path.join(__dirname, 'test-dir');
|
|
|
|
module.exports = {
|
|
setUp : function(done) {
|
|
fs.mkdirSync(TEST_DIR);
|
|
done();
|
|
},
|
|
|
|
tearDown : function(done) {
|
|
fs.rmdirSync(TEST_DIR);
|
|
done();
|
|
},
|
|
|
|
'should remove empty directory' : function(test) {
|
|
var dir = path.join(TEST_DIR, 'dir');
|
|
fs.mkdirSync(dir);
|
|
vfs.removeDir(dir)
|
|
.then(
|
|
function() {
|
|
return vfs.exists(dir);
|
|
},
|
|
function() {
|
|
test.ok(false);
|
|
})
|
|
.always(function(promise) {
|
|
test.ok(!promise.valueOf());
|
|
test.done();
|
|
});
|
|
},
|
|
|
|
'should remove directory tree' : function(test) {
|
|
var dir = path.join(TEST_DIR, 'dir');
|
|
fs.mkdirSync(dir);
|
|
fs.mkdirSync(path.join(dir, 'a'));
|
|
fs.writeFileSync(path.join(dir, 'a', 'file'), 'file');
|
|
fs.mkdirSync(path.join(dir, 'a', 'b'));
|
|
fs.writeFileSync(path.join(dir, 'a', 'b', 'file1'), 'file1');
|
|
fs.writeFileSync(path.join(dir, 'a', 'b', 'file2'), 'file2');
|
|
vfs.removeDir(dir)
|
|
.then(
|
|
function() {
|
|
return vfs.exists(dir);
|
|
},
|
|
function() {
|
|
test.ok(false);
|
|
})
|
|
.always(function(promise) {
|
|
test.ok(!promise.valueOf());
|
|
test.done();
|
|
});
|
|
},
|
|
|
|
'should not remove file' : function(test) {
|
|
var filePath = path.join(TEST_DIR, 'file');
|
|
fs.writeFileSync(filePath, 'file');
|
|
vfs.removeDir(filePath)
|
|
.then(
|
|
function() {
|
|
test.ok(false);
|
|
},
|
|
function(err) {
|
|
test.equal(err.code, 'ENOTDIR');
|
|
return vfs.exists(filePath);
|
|
})
|
|
.always(function(promise) {
|
|
test.ok(promise.valueOf());
|
|
fs.unlinkSync(filePath);
|
|
test.done();
|
|
});
|
|
}
|
|
}; |