Files
bower/test/util/removeIgnores.js
2016-03-31 00:27:17 +02:00

76 lines
2.1 KiB
JavaScript

var expect = require('expect.js');
var helpers = require('../helpers');
var glob = require('glob');
var Q = require('q');
var removeIgnores = require('../../lib/util/removeIgnores');
describe('removeIgnores', function () {
var tempDir = new helpers.TempDir({
'bower.json': {},
'index.js': 'Not to ignore',
'node_modules/underscore/index.js': 'Should be ignored'
});
var ignoreTest = function (dir, meta, leftovers) {
tempDir.prepare();
var deferred = Q.defer();
removeIgnores(dir, meta).then(function () {
glob('**/*.*', { cwd: dir }, function (cb, files) {
expect(files).to.eql(leftovers);
deferred.resolve();
});
});
return deferred.promise;
};
it('removes all files in directory', function () {
return ignoreTest(tempDir.path,
{ ignore: [ 'node_modules/**/*' ] },
[ 'bower.json', 'index.js' ]
);
});
it('removes whole directory', function () {
return ignoreTest(tempDir.path,
{ ignore: [ 'node_modules/' ] },
[ 'bower.json', 'index.js' ]
);
});
it('removes whole directory (no ending slash)', function () {
return ignoreTest(tempDir.path,
{ ignore: [ 'node_modules' ] },
[ 'bower.json', 'index.js' ]
);
});
it('removes all but one file', function () {
return ignoreTest(tempDir.path,
{ ignore: [ '**/*', '!bower.json' ] },
[ 'bower.json' ]
);
});
it('refuses to ignore bower.json', function () {
return ignoreTest(tempDir.path,
{ ignore: [ '**/*', '!index.js' ] },
[ 'bower.json', 'index.js' ]
);
});
it('removes all but one file deep down the tree', function () {
return ignoreTest(tempDir.path,
{ ignore: [ '**/*', '!node_modules/underscore/index.js' ] },
[
'bower.json',
'node_modules/underscore/index.js'
]
);
});
});