var assert = require('assert'); var fileMatch = require('../file-match'); describe('File match', function() { describe('empty value', function() { it('Empty string', function() { var filter = fileMatch(''); assert.equal(false, filter('demo.js')); }); it('Empty array', function() { var filter = fileMatch([]); assert.equal(false, filter('demo.js')); }); it('Null', function() { var filter = fileMatch(null); assert.equal(true, filter('demo.js')); assert.equal(true, filter('path/demo.js')); }); }); describe('Normal value', function() { it('String', function() { var filter = fileMatch('**/*.js'); assert.equal(true, filter('demo.js')); assert.equal(true, filter('path/demo.js')); assert.equal(false, filter('path/.js/demo.css')); }); it('Array', function() { var filter = fileMatch([ '*.js', 'img/**/*.{png,jgp,gif}', 'js/my-*.js', 'css/*.css' ]); assert.equal(true, filter('demo.js')); assert.equal(true, filter('img/demo.png')); assert.equal(true, filter('img/path/pic.gif')); assert.equal(true, filter('css/demo.css')); assert.equal(false, filter('css/src/demo.css')); assert.equal(false, filter('img/path/pic.jpeg')); assert.equal(true, filter('js/my-.js')); assert.equal(true, filter('js/my-demo.js')); assert.equal(false, filter('js/my-demo.js.css')); }); it('Exclude', function() { var filter = fileMatch([ '**/*', '!.*', '!dest/**/*', '!img/dest/*.{png, jpg, gif}' ]); assert.equal(true, filter('img/dest/demo.jpeg')); assert.equal(false, filter('.gitignore')); assert.equal(true, filter('path/.gitignore')); assert.equal(false, filter('dest/demo.css')); assert.equal(false, filter('img/dest/demo.jpg')); }); it('Ignore case', function() { var filter = fileMatch([ 'path/demo.js' ]); var filter2 = fileMatch([ 'path/demo.js' ], true); assert.equal(false, filter('path/DEMO.js')); assert.equal(true, filter2('path/DEMO.js')); }); }); });