mirror of
https://github.com/bower/bower.git
synced 2026-01-15 01:08:07 -05:00
90 lines
2.5 KiB
JavaScript
90 lines
2.5 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);
|
|
});
|
|
});
|
|
});
|