bricks-cli
Version:
Command line tool for developing ambitious ember.js apps
74 lines (61 loc) • 2.04 kB
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 = helpers.createTmpDir({
'bower.json': {},
'index.js': 'Not to ignore',
'node_modules/underscore/index.js': 'Should be ignored'
});
var ignoreTest = function(dir, meta, leftovers) {
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,
{ ignore: [ 'node_modules/**/*' ] },
[ 'bower.json', 'index.js' ]
);
});
it('removes whole directory', function () {
return ignoreTest(tempDir,
{ ignore: [ 'node_modules/' ] },
[ 'bower.json', 'index.js' ]
);
});
it('removes whole directory (no ending slash)', function () {
return ignoreTest(tempDir,
{ ignore: [ 'node_modules' ] },
[ 'bower.json', 'index.js' ]
);
});
it('removes all but one file', function() {
return ignoreTest(tempDir,
{ ignore: [ '**/*', '!bower.json' ] },
[ 'bower.json' ]
);
});
it('refuses to ignore bower.json', function() {
return ignoreTest(tempDir,
{ ignore: [ '**/*', '!index.js' ] },
[ 'bower.json', 'index.js' ]
);
});
it('removes all but one file deep down the tree', function() {
return ignoreTest(tempDir,
{ ignore: [ '**/*', '!node_modules/underscore/index.js' ] },
[
'bower.json',
'node_modules/underscore/index.js'
]
);
});
});