var assert = require(“assert”); var file = require('../file-system'); var path = require('path'); var fs = require('fs');
function getPath(filepath) {
return path.join(__dirname, 'var', filepath);
}
describe('filter params', function() {
var allFiles = [ getPath('filter/index.css'), getPath('filter/index.js'), getPath('filter/index.html'), getPath('filter/1/ab.css'), getPath('filter/1/abc.js'), getPath('filter/1/a.html'), getPath('filter/1/1/ac.css'), getPath('filter/1/1/bc.js'), getPath('filter/1/1/a-b-c.html'), getPath('filter/2/a_b_c.css'), getPath('filter/2/2/a_b_c.css'), getPath('filter/2/a-c.js'), getPath('filter/2/b.html') ]; before(function() { allFiles.forEach(function(item) { file.writeFileSync(item); }); }); it('match css files in current dir', function() { var result = []; file.recurseSync(getPath('filter'), [ '*.css' ], function(filepath, filename) { if (!filename) return; result.push(filepath); }); assert.equal(result.length, 1); }); it('match all css files', function() { var result = []; file.recurseSync(getPath('filter'), [ '**/*.css' ], function(filepath, filename) { if (!filename) return; result.push(filepath); }); assert.equal(result.length, 5); }); it('match all css files in specific folder', function() { var result = []; file.recurseSync(getPath('filter'), [ '2/*.css' ], function(filepath, filename) { if (!filename) return; result.push(filepath); }); assert.equal(result.length, 1); }); it('specific file * name', function() { var result = []; file.recurseSync(getPath('filter'), [ '2/**/*c.css' ], function(filepath, filename) { if (!filename) return; result.push(filepath); }); assert.equal(result.length, 2); }); it('exclude all css files in specific folder', function() { var result = []; file.recurseSync(getPath('filter'), [ '**/*.css', '!2/**/*.css' ], function(filepath, filename) { if (!filename) return; result.push(filepath); }); assert.equal(result.length, 3); }); after(function() { file.rmdirSync(getPath('filter')); });
});