mirror of
https://github.com/bower/bower.git
synced 2026-01-14 08:47:54 -05:00
156 lines
4.6 KiB
JavaScript
156 lines
4.6 KiB
JavaScript
var expect = require('expect.js');
|
|
|
|
var helpers = require('../helpers');
|
|
var version = helpers.require('lib/commands').version;
|
|
|
|
describe('bower version', function() {
|
|
var mainPackage = new helpers.TempDir({
|
|
'v0.0.0': {
|
|
'bower.json': {
|
|
name: 'foobar'
|
|
}
|
|
}
|
|
});
|
|
|
|
it('bumps patch version', function() {
|
|
mainPackage.prepareGit();
|
|
|
|
return helpers
|
|
.run(version, ['patch', {}, { cwd: mainPackage.path }])
|
|
.then(function() {
|
|
expect(mainPackage.latestGitTag()).to.be('0.0.1');
|
|
});
|
|
});
|
|
|
|
it('bumps minor version', function() {
|
|
mainPackage.prepareGit();
|
|
|
|
return helpers
|
|
.run(version, ['minor', {}, { cwd: mainPackage.path }])
|
|
.then(function() {
|
|
expect(mainPackage.latestGitTag()).to.be('0.1.0');
|
|
});
|
|
});
|
|
|
|
it('bumps major version', function() {
|
|
mainPackage.prepareGit();
|
|
|
|
return helpers
|
|
.run(version, ['major', {}, { cwd: mainPackage.path }])
|
|
.then(function() {
|
|
expect(mainPackage.latestGitTag()).to.be('1.0.0');
|
|
});
|
|
});
|
|
|
|
it('changes version', function() {
|
|
mainPackage.prepareGit();
|
|
|
|
return helpers
|
|
.run(version, ['1.2.3', {}, { cwd: mainPackage.path }])
|
|
.then(function() {
|
|
expect(mainPackage.latestGitTag()).to.be('1.2.3');
|
|
});
|
|
});
|
|
|
|
it('returns the new version', function() {
|
|
mainPackage.prepareGit();
|
|
|
|
return helpers
|
|
.run(version, ['major', {}, { cwd: mainPackage.path }])
|
|
.then(function(results) {
|
|
expect(results[0]).to.be('v1.0.0');
|
|
});
|
|
});
|
|
|
|
it('fails on a dirty git repository', function() {
|
|
mainPackage.prepareGit();
|
|
mainPackage.create({
|
|
'dirty.txt': 'This file has not been committed'
|
|
});
|
|
|
|
return helpers
|
|
.run(version, ['patch', {}, { cwd: mainPackage.path }])
|
|
.then(null, function(err) {
|
|
expect(err).to.be.an(Error);
|
|
expect(err.code).to.be('ENOTGITREPOSITORY');
|
|
});
|
|
});
|
|
|
|
it('fails when the version already exists', function() {
|
|
mainPackage.prepareGit();
|
|
|
|
return helpers
|
|
.run(version, ['0.0.0', {}, { cwd: mainPackage.path }])
|
|
.then(null, function(err) {
|
|
expect(err).to.be.an(Error);
|
|
expect(err.code).to.be('EVERSIONEXISTS');
|
|
});
|
|
});
|
|
|
|
it('fails with an invalid argument', function() {
|
|
mainPackage.prepareGit();
|
|
|
|
return helpers
|
|
.run(version, ['lol', {}, { cwd: mainPackage.path }])
|
|
.then(null, function(err) {
|
|
expect(err).to.be.an(Error);
|
|
expect(err.code).to.be('EINVALIDVERSION');
|
|
});
|
|
});
|
|
|
|
it('bumps with custom commit message', function() {
|
|
mainPackage.prepareGit();
|
|
|
|
return helpers
|
|
.run(version, [
|
|
'patch',
|
|
{ message: 'Bumping %s, because what' },
|
|
{ cwd: mainPackage.path }
|
|
])
|
|
.then(function() {
|
|
var tags = mainPackage.git('tag');
|
|
expect(tags).to.be('v0.0.0\nv0.0.1\n');
|
|
var message = mainPackage.git(
|
|
'log',
|
|
'--pretty=format:%s',
|
|
'-n1'
|
|
);
|
|
expect(message).to.be('Bumping v0.0.1, because what');
|
|
});
|
|
});
|
|
|
|
it('creates commit and tags', function() {
|
|
mainPackage.prepareGit();
|
|
|
|
return helpers
|
|
.run(version, ['patch', {}, { cwd: mainPackage.path }])
|
|
.then(function() {
|
|
var tags = mainPackage.git('tag');
|
|
expect(tags).to.be('v0.0.0\nv0.0.1\n');
|
|
var message = mainPackage.git(
|
|
'log',
|
|
'--pretty=format:%s',
|
|
'-n1'
|
|
);
|
|
expect(message).to.be('v0.0.1');
|
|
});
|
|
});
|
|
|
|
it('assumes v0.0.0 when no tags exist', function() {
|
|
var packageWithoutTags = new helpers.TempDir({});
|
|
|
|
packageWithoutTags.prepareGit();
|
|
packageWithoutTags.create({
|
|
'index.js': 'console.log("hello, world");'
|
|
});
|
|
packageWithoutTags.git('add', '-A');
|
|
packageWithoutTags.git('commit', '-m"commit"');
|
|
|
|
return helpers
|
|
.run(version, ['major', {}, { cwd: packageWithoutTags.path }])
|
|
.then(function() {
|
|
expect(packageWithoutTags.latestGitTag()).to.be('1.0.0');
|
|
});
|
|
});
|
|
});
|