mirror of
https://github.com/bower/bower.git
synced 2026-01-14 08:47:54 -05:00
112 lines
3.0 KiB
JavaScript
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);
|
|
});
|
|
});
|
|
});
|