You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
3.4 KiB
136 lines
3.4 KiB
1 year ago
|
var assert = require("assert");
|
||
|
var file = require('../file-system');
|
||
|
var fs = require('fs');
|
||
|
var path = require('path');
|
||
|
|
||
|
function getPath(filepath) {
|
||
|
return path.join(__dirname, filepath);
|
||
|
}
|
||
|
|
||
|
describe('recurse', function() {
|
||
|
var allFiles = [
|
||
|
[
|
||
|
getPath('var/recurse/simple/1/1.html'),
|
||
|
getPath('var/recurse/simple/1/2.html'),
|
||
|
getPath('var/recurse/simple/1.html')
|
||
|
],
|
||
|
[
|
||
|
getPath('var/recurse/filter/1/demo.js'),
|
||
|
getPath('var/recurse/filter/1/2/demo.js'),
|
||
|
getPath('var/recurse/filter/1/2/demo.css'),
|
||
|
getPath('var/recurse/filter/1/2/demo.html'),
|
||
|
getPath('var/recurse/filter/demo.html'),
|
||
|
getPath('var/recurse/filter/demo.js'),
|
||
|
getPath('var/recurse/filter/demo.css')
|
||
|
],
|
||
|
[
|
||
|
getPath('var/recurse/copy/1/demo.js'),
|
||
|
getPath('var/recurse/copy/1/2/demo.js'),
|
||
|
getPath('var/recurse/copy/1/2/demo.css'),
|
||
|
getPath('var/recurse/copy/1/2/demo.html'),
|
||
|
getPath('var/recurse/copy/demo.html'),
|
||
|
getPath('var/recurse/copy/demo.js'),
|
||
|
getPath('var/recurse/copy/demo.css')
|
||
|
]
|
||
|
];
|
||
|
|
||
|
before(function() {
|
||
|
allFiles.forEach(function(files) {
|
||
|
files.forEach(function(item) {
|
||
|
file.writeFileSync(item);
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it('recurse files', function(done) {
|
||
|
var filesPath = allFiles[0];
|
||
|
var count = 0;
|
||
|
|
||
|
file.recurse(getPath('var/recurse/simple'), function(filepath, relative, filename) {
|
||
|
if (filename) {
|
||
|
assert.equal(true, filesPath.indexOf(filepath) != -1);
|
||
|
|
||
|
if (++count == filesPath.length) {
|
||
|
done();
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it('recurseSync files', function() {
|
||
|
var filesPath = [];
|
||
|
file.recurseSync(getPath('var/recurse/filter'), function(filepath, relative, filename) {
|
||
|
if (filename) {
|
||
|
filesPath.push(filepath);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
assert.equal(filesPath.length, allFiles[1].length);
|
||
|
});
|
||
|
|
||
|
it('recurseSync filter files', function() {
|
||
|
var filesPath = [];
|
||
|
file.recurseSync(getPath('var/recurse/filter'), [
|
||
|
'demo.js',
|
||
|
'1/**/*.css'
|
||
|
], function(filepath, filename) {
|
||
|
if (filename) {
|
||
|
filesPath.push(filepath);
|
||
|
}
|
||
|
});
|
||
|
var filterPath = [
|
||
|
getPath('var/recurse/filter/1/2/demo.css'),
|
||
|
getPath('var/recurse/filter/demo.js')
|
||
|
];
|
||
|
|
||
|
assert.deepEqual(filesPath, filterPath);
|
||
|
});
|
||
|
|
||
|
it('copySync files', function() {
|
||
|
var dest = getPath('var/recurse/dest');
|
||
|
var destFiles = [];
|
||
|
|
||
|
file.copySync(getPath('var/recurse/copy'), dest);
|
||
|
|
||
|
file.recurseSync(dest, function(filepath, relative, filename) {
|
||
|
if (!filename) return;
|
||
|
|
||
|
destFiles.push(filepath);
|
||
|
});
|
||
|
|
||
|
assert.equal(destFiles.length, allFiles[2].length);
|
||
|
});
|
||
|
|
||
|
it('copySync empty folder', function() {
|
||
|
var dest = getPath('var/recurse/copy/emptydest');
|
||
|
var src = getPath('var/recurse/copy/empty');
|
||
|
|
||
|
file.mkdirSync(src);
|
||
|
file.copySync(src, dest);
|
||
|
|
||
|
var existsSync = fs.existsSync(dest);
|
||
|
|
||
|
assert.equal(existsSync, true);
|
||
|
});
|
||
|
|
||
|
it('copySync process content', function() {
|
||
|
var src = getPath('var/recurse/copyprocess/');
|
||
|
var dest = getPath('var/recurse/copyprocess/dest');
|
||
|
|
||
|
file.writeFileSync(path.join(src, '1.html'), 'a');
|
||
|
|
||
|
file.copySync(src, dest, {
|
||
|
process: function(contents, filepath) {
|
||
|
return 'b';
|
||
|
}
|
||
|
});
|
||
|
|
||
|
var contents = fs.readFileSync(path.join(dest, '1.html'));
|
||
|
|
||
|
assert.equal('b', contents);
|
||
|
});
|
||
|
|
||
|
after(function() {
|
||
|
file.rmdirSync(getPath('var/recurse'));
|
||
|
});
|
||
|
});
|