101 lines
3.2 KiB
JavaScript
101 lines
3.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 copy file' : function(test) {
|
|
var sourceFile = path.join(TEST_DIR, 'source-file'),
|
|
targetFile = path.join(TEST_DIR, 'target-file');
|
|
fs.writeFileSync(sourceFile, 'source');
|
|
vfs.copy(sourceFile, targetFile)
|
|
.then(function() {
|
|
test.equal(fs.readFileSync(targetFile, 'utf8'), 'source');
|
|
})
|
|
.always(function() {
|
|
fs.unlinkSync(sourceFile);
|
|
fs.unlinkSync(targetFile);
|
|
test.done();
|
|
});
|
|
},
|
|
|
|
'should copy file if target exists' : function(test) {
|
|
var sourceFile = path.join(TEST_DIR, 'source-file'),
|
|
targetFile = path.join(TEST_DIR, 'target-file');
|
|
fs.writeFileSync(sourceFile, 'source');
|
|
fs.writeFileSync(targetFile, 'target');
|
|
vfs.copy(sourceFile, targetFile)
|
|
.then(function() {
|
|
test.equal(fs.readFileSync(targetFile, 'utf8'), 'source');
|
|
})
|
|
.always(function() {
|
|
fs.unlinkSync(sourceFile);
|
|
fs.unlinkSync(targetFile);
|
|
test.done();
|
|
});
|
|
},
|
|
|
|
'should not copy file if source is directory' : function(test) {
|
|
var sourceDir = path.join(TEST_DIR, 'source-dir'),
|
|
targetFile = path.join(TEST_DIR, 'target-file');
|
|
fs.mkdirSync(sourceDir);
|
|
vfs.copy(sourceDir, targetFile)
|
|
.then(
|
|
function() {
|
|
test.ok(false);
|
|
},
|
|
function(err) {
|
|
test.equal(err.code, 'EISDIR');
|
|
})
|
|
.always(function() {
|
|
fs.rmdirSync(sourceDir);
|
|
test.done();
|
|
});
|
|
},
|
|
|
|
'should not copy file if target is directory' : function(test) {
|
|
var sourceFile = path.join(TEST_DIR, 'source-file'),
|
|
targetDir = path.join(TEST_DIR, 'target-dir');
|
|
fs.writeFileSync(sourceFile, 'source');
|
|
fs.mkdirSync(targetDir);
|
|
vfs.copy(sourceFile, targetDir)
|
|
.then(
|
|
function() {
|
|
test.ok(false);
|
|
},
|
|
function(err) {
|
|
test.equal(err.code, 'EISDIR');
|
|
})
|
|
.always(function() {
|
|
fs.unlinkSync(sourceFile);
|
|
fs.rmdirSync(targetDir);
|
|
test.done();
|
|
});
|
|
},
|
|
|
|
'should not copy if target not exists' : function(test) {
|
|
var sourceFile = path.join(TEST_DIR, 'source-file'),
|
|
targetFile = path.join(TEST_DIR, 'target-file');
|
|
vfs.copy(sourceFile, targetFile)
|
|
.then(
|
|
function() {
|
|
test.ok(false);
|
|
},
|
|
function(err) {
|
|
test.equal(err.code, 'ENOENT');
|
|
})
|
|
.always(function() {
|
|
test.done();
|
|
});
|
|
}
|
|
}; |