Files
bower/test/commands/cache/clean.js
Adam Stankiewicz 0a8a4f9029 Format with prettier
2018-03-28 19:10:16 +02:00

112 lines
3.0 KiB
JavaScript

var expect = require('expect.js');
var md5 = require('md5-hex');
var helpers = require('../../helpers');
var cacheClean = helpers.command('cache/clean');
var object = require('mout/object');
describe('bower cache clean', function() {
// Because directory names are required to be md5 of _source
var cacheFilesFactory = function(spec) {
var files = {};
object.map(spec, function(bowerJson) {
bowerJson._source = bowerJson.name + '/' + bowerJson.version;
var path =
md5(bowerJson._source) +
'/' +
bowerJson.version +
'/.bower.json';
files[path] = bowerJson;
});
return files;
};
var cacheFiles = cacheFilesFactory([
{
name: 'angular',
version: '1.3.8'
},
{
name: 'angular',
version: '1.3.9'
},
{
name: 'jquery',
version: '1.0.0'
}
]);
var cacheDir = new helpers.TempDir(cacheFiles);
it('correctly reads arguments', function() {
expect(cacheClean.readOptions(['jquery', 'angular'])).to.eql([
['jquery', 'angular'],
{}
]);
});
it('removes all cache', function() {
cacheDir.prepare();
return helpers
.run(cacheClean, [
undefined,
{},
{
storage: {
packages: cacheDir.path
}
}
])
.spread(function(result) {
object.map(cacheFiles, function(_, cacheFile) {
expect(cacheDir.exists(cacheFile)).to.be(false);
});
});
});
it('removes single package', function() {
cacheDir.prepare();
return helpers
.run(cacheClean, [
['angular'],
{},
{
storage: {
packages: cacheDir.path
}
}
])
.spread(function(result) {
var paths = Object.keys(cacheFiles);
expect(cacheDir.exists(paths[0])).to.be(false);
expect(cacheDir.exists(paths[1])).to.be(false);
expect(cacheDir.exists(paths[2])).to.be(true);
});
});
it('removes single package package version', function() {
cacheDir.prepare();
return helpers
.run(cacheClean, [
['angular#1.3.8'],
{},
{
storage: {
packages: cacheDir.path
}
}
])
.spread(function(result) {
var paths = Object.keys(cacheFiles);
expect(cacheDir.exists(paths[0])).to.be(false);
expect(cacheDir.exists(paths[1])).to.be(true);
expect(cacheDir.exists(paths[2])).to.be(true);
});
});
});