diolive-bump
Version:
Fixed and improved version of stevelacy/gulp-bump
85 lines (70 loc) • 2.36 kB
JavaScript
;
var gutil = require('gulp-util');
var should = require('should');
var bump = require('..');
require('mocha');
describe('Test failure cases cases in gulp-bump', function() {
it('should fail when not detect a valid semver version', function(done) {
var file = 'some-dir/dummyfile.js';
var fakeFile = new gutil.File({
path: file,
contents: new Buffer('{ "version": "0.A.1" }')
});
var bumpS = bump();
bumpS.on('error', function(e) {
should.exist(e);
e.message.should.equal('Detected invalid semver version');
e.fileName.should.containEql(file);
return done();
});
bumpS.write(fakeFile);
bumpS.end();
});
it('should fail when not detect a valid semver version and wrong key', function(done) {
var file = 'some-dir/dummyfile.js';
var fakeFile = new gutil.File({
path: file,
contents: new Buffer('{ "version": "0.0.1" }')
});
var bumpS = bump({key: 'appversion'});
bumpS.on('error', function(e) {
should.exist(e);
e.message.should.containEql('Detected invalid semver appversion');
e.fileName.should.containEql(file);
return done();
});
bumpS.write(fakeFile);
bumpS.end();
});
it('should fail when supplied with an invalid JSON', function(done) {
var file = 'some-dir/dummyfile.js';
var fakeFile = new gutil.File({
path: file,
contents: new Buffer('{ invalid json oh no!!!}')
});
var bumpS = bump();
bumpS.on('error', function(e) {
should.exist(e);
e.name.should.equal('Error');
e.message.should.containEql('Problem parsing JSON file');
e.fileName.should.containEql(file);
return done();
});
bumpS.write(fakeFile);
bumpS.end();
});
it('should fallback to defaults when supplied with invalid semver version', function(done) {
var fakeFile = new gutil.File({
contents: new Buffer('{ "version": "0.0.1" }')
});
var bumpS = bump({version: '0.A.2'});
bumpS.once('data', function(newFile) {
should.exist(newFile);
should.exist(newFile.contents);
JSON.parse(newFile.contents.toString()).version.should.equal('0.0.2');
return done();
});
bumpS.write(fakeFile);
bumpS.end();
});
});