/**
|
* Module dependencies.
|
*/
|
|
var dir = require('../lib/dir');
|
var should = require('should');
|
var path = require('path');
|
var fs = require('fs');
|
var exec = require('child_process').exec;
|
|
describe('dir', function() {
|
describe('#walk()', function() {
|
var root = path.dirname(__dirname) + '/';
|
|
function check(dir, files) {
|
fs.statSync(dir).isDirectory().should.be.true;
|
files.should.be.a('object');
|
Object.keys(files).length.should.equal(fs.readdirSync(dir).length);
|
for (var k in files) {
|
k.should.be.a('string');
|
k.should.include(dir);
|
var stats = files[k];
|
stats.should.be.an.instanceof(fs.Stats);
|
}
|
}
|
|
it('should walk dir all', function(done) {
|
var walker = new dir.Walk(root);
|
walker.on('dir', check);
|
walker.on('end', done);
|
});
|
|
it('should walk dir all in callback', function(done) {
|
var walker = new dir.Walk(root, check, done);
|
});
|
|
it('walk(dir, ondir, onend, onerr) should worked', function(done) {
|
dir.walk(root, check, done, function(err, p) {
|
console.log(p);
|
throw err;
|
});
|
});
|
|
it('should success when walk empty dir', function(done) {
|
dir.walk(__dirname + '/emptydir', check, done);
|
});
|
});
|
|
describe('#copyfile()', function() {
|
var from = __dirname + '/dir.test.foo.txt';
|
var to = __dirname + '/dir.test.bar.txt';
|
var toParentNotExists = '/tmp/' + new Date().getTime() + '/dir.test.bar.txt';
|
before(function() {
|
path.existsSync(to) && fs.unlinkSync(to);
|
});
|
it('should worked', function(done) {
|
dir.copyfile(from, to, function(err) {
|
should.not.exist(err);
|
fs.statSync(to).isFile().should.be.true;
|
fs.readFileSync(to).toString().should.equal(fs.readFileSync(from).toString());
|
dir.copyfile(to, to, function(err) {
|
err.should.be.an.instanceof(Error);
|
done();
|
});
|
});
|
});
|
it('should copy toParentNotExists', function(done) {
|
dir.copyfile(from, toParentNotExists, function(exists, next) {
|
exists.should.be.false;
|
next(true);
|
}, function(err) {
|
should.not.exist(err);
|
fs.statSync(toParentNotExists).isFile().should.be.true;
|
fs.readFileSync(toParentNotExists).toString().should.equal(fs.readFileSync(from).toString());
|
done();
|
});
|
});
|
});
|
|
describe('#mkdir()', function() {
|
var existsDir = '/tmp/dir.test.exists.dir';
|
var notExistsDir = '/tmp/dir.test/not.exists.dir';
|
before(function(done) {
|
!path.existsSync(existsDir) && fs.mkdirSync(existsDir);
|
exec('rm -rf /tmp/dir.test', done);
|
});
|
|
after(function() {
|
fs.rmdirSync(existsDir);
|
});
|
|
it('should make exists dir success', function(done) {
|
path.existsSync(existsDir).should.be.true;
|
dir.mkdir(existsDir, function(err) {
|
path.existsSync(existsDir).should.be.true;
|
done(err);
|
});
|
});
|
|
it('should make not exists dir success', function(done) {
|
path.existsSync(notExistsDir).should.be.false;
|
dir.mkdir(notExistsDir, function(err) {
|
path.existsSync(notExistsDir).should.be.true;
|
done(err);
|
});
|
});
|
});
|
});
|