gulp-bump-version
Version:
gulp-bump-version eases and automates the management of semver version strings in the source code of almost any file type.
515 lines (455 loc) • 18.6 kB
text/typescript
/*-----------------------------------------------------------------------------
* @package; gulp-bump-version
* @author: Richard B Winters
* @copyright: 2015-2018 Massively Modified, Inc.
* @license: Apache-2.0
* @version: 0.1.1
*---------------------------------------------------------------------------*/
// INCLUDES
import * as assert from 'assert';
import * as es from 'event-stream';
import * as File from 'vinyl';
import * as bump from '../../index.js';
// SANITY CHECK - Makes sure our tests are working proerly
describe
(
'SanityCheck', function()
{
describe
(
'#indexOf()',
function()
{
it
(
'should return -1 when the value is not present',
function()
{
assert.equal( [1,2,3].indexOf( 4 ), -1 );
}
);
}
);
}
);
// Feature Check I
describe
(
'gulp-bump-version I',
function()
{
describe
(
'in buffer mode',
function()
{
it
(
'Should return 0.1.0 as that is what the regex will match. It checks only that it can match.',
function( done )
{
// Create the fake file
let fakeFile = new File
(
{
contents: new Buffer(
'This is just a sample string with a version tag contained in it.' +
' Let us say that " @version: 0.1.0 " is what we are matching, and' +
' that the test ensures it happens even embedded within this sample text.' +
' The test ensures our RegExp is SOLID!'
)
}
);
let bumper = ( bump as any )( { version: -1 } );
bumper.write( fakeFile );
bumper.once
(
'data',
function( file )
{
assert( file.isBuffer() );
assert.equal
(
file.contents.toString( 'utf8' ),
'@version: 0.1.0'
);
done();
}
);
}
);
}
);
}
);
// Feature Check II
describe
(
'gulp-bump-version II',
function()
{
describe
(
'in buffer mode',
function()
{
it
(
'Should modify the supplied "file" so that the contained version has its "patch" revision incremented by 1',
function( done )
{
// Create the fake file
let fakeFile = new File
(
{
contents: new Buffer(
'This is just a sample string with a version tag contained in it.' +
' Let us say that " @version: 0.1.0 " is what we are matching, and' +
' that the test ensures it happens even embedded within this sample text.' +
' The test ensures our RegExp is SOLID!'
)
}
);
let bumper = ( bump as any )( { type: 'patch' } );
bumper.write( fakeFile );
bumper.once
(
'data',
function( file )
{
assert( file.isBuffer() );
assert.equal
(
file.contents.toString( 'utf8' ),
'This is just a sample string with a version tag contained in it.' +
' Let us say that " @version: 0.1.1 " is what we are matching, and' +
' that the test ensures it happens even embedded within this sample text.' +
' The test ensures our RegExp is SOLID!'
);
done();
}
);
}
);
}
);
}
);
// Feature Check III
describe
(
'gulp-bump-version III',
function()
{
describe
(
'in buffer mode',
function()
{
it
(
'Should modify the supplied "file" so that the contained version has its "minor" revision incremented by 1',
function( done )
{
// Create the fake file
let fakeFile = new File
(
{
contents: new Buffer(
'This is just a sample string with a version tag contained in it.' +
' Let us say that " @version: 0.1.0 " is what we are matching, and' +
' that the test ensures it happens even embedded within this sample text.' +
' The test ensures our RegExp is SOLID!'
)
}
);
let bumper = ( bump as any )( { type: 'minor' } );
bumper.write( fakeFile );
bumper.once
(
'data',
function( file )
{
assert( file.isBuffer() );
assert.equal
(
file.contents.toString( 'utf8' ),
'This is just a sample string with a version tag contained in it.' +
' Let us say that " @version: 0.2.0 " is what we are matching, and' +
' that the test ensures it happens even embedded within this sample text.' +
' The test ensures our RegExp is SOLID!'
);
done();
}
);
}
);
}
);
}
);
// Feature Check IV
describe
(
'gulp-bump-version IV',
function()
{
describe
(
'in buffer mode',
function()
{
it
(
'Should modify the supplied "file" so that the contained version has its "major" revision incremented by 1',
function( done )
{
// Create the fake file
let fakeFile = new File
(
{
contents: new Buffer(
'This is just a sample string with a version tag contained in it.' +
' Let us say that " @version: 0.1.0 " is what we are matching, and' +
' that the test ensures it happens even embedded within this sample text.' +
' The test ensures our RegExp is SOLID!'
)
}
);
let bumper = ( bump as any )( { type: 'major' } );
bumper.write( fakeFile );
bumper.once
(
'data',
function( file )
{
assert( file.isBuffer() );
assert.equal
(
file.contents.toString( 'utf8' ),
'This is just a sample string with a version tag contained in it.' +
' Let us say that " @version: 1.0.0 " is what we are matching, and' +
' that the test ensures it happens even embedded within this sample text.' +
' The test ensures our RegExp is SOLID!'
);
done();
}
);
}
);
}
);
}
);
// Feature Check V
describe
(
'gulp-bump-version V',
function()
{
describe
(
'in buffer mode',
function()
{
it
(
'Should modify the supplied "file" so that the contained version has its "prerelease" revision incremented by 1',
function( done )
{
// Create the fake file
let fakeFile = new File
(
{
contents: new Buffer(
'This is just a sample string with a version tag contained in it.' +
' Let us say that " @version: 0.1.0 " is what we are matching, and' +
' that the test ensures it happens even embedded within this sample text.' +
' The test ensures our RegExp is SOLID!'
)
}
);
let bumper = ( bump as any )( { type: 'prerelease' } );
bumper.write( fakeFile );
bumper.once
(
'data',
function( file )
{
assert( file.isBuffer() );
assert.equal
(
file.contents.toString( 'utf8' ),
'This is just a sample string with a version tag contained in it.' +
' Let us say that " @version: 0.1.0-1 " is what we are matching, and' +
' that the test ensures it happens even embedded within this sample text.' +
' The test ensures our RegExp is SOLID!'
);
done();
}
);
}
);
}
);
}
);
// Feature Check VI
describe
(
'gulp-bump-version VI',
function()
{
describe
(
'in buffer mode',
function()
{
it
(
'Should modify the supplied "file" so that the contained version is set to 2.1.31-1',
function( done )
{
// Create the fake file
let fakeFile = new File
(
{
contents: new Buffer(
'This is just a sample string with a version tag contained in it.' +
' Let us say that " @version: 0.1.0 " is what we are matching, and' +
' that the test ensures it happens even embedded within this sample text.' +
' The test ensures our RegExp is SOLID!'
)
}
);
let bumper = ( bump as any )( { version: '2.1.31-1' } );
bumper.write( fakeFile );
bumper.once
(
'data',
function( file )
{
assert( file.isBuffer() );
assert.equal
(
file.contents.toString( 'utf8' ),
'This is just a sample string with a version tag contained in it.' +
' Let us say that " @version: 2.1.31-1 " is what we are matching, and' +
' that the test ensures it happens even embedded within this sample text.' +
' The test ensures our RegExp is SOLID!'
);
done();
}
);
}
);
}
);
}
);
// Feature Check VII
describe
(
'gulp-bump-version VII',
function()
{
describe
(
'in buffer mode',
function()
{
it
(
'Should modify the supplied "file" so that the contained version is set to 0.1.1. It uses a customized key with out a semi-colon, and since it was removed from the fake file - it should match.',
function( done )
{
// Create the fake file
let fakeFile = new File
(
{
contents: new Buffer(
'This is just a sample string with a version tag contained in it.' +
' Let us say that " @version 0.1.0 " is what we are matching, and' +
' that the test ensures it happens even embedded within this sample text.' +
' The test ensures our RegExp is SOLID!'
)
}
);
let bumper = ( bump as any )( { type: 'patch', key: '@version' } );
bumper.write( fakeFile );
bumper.once
(
'data',
function( file )
{
assert( file.isBuffer() );
assert.equal
(
file.contents.toString( 'utf8' ),
'This is just a sample string with a version tag contained in it.' +
' Let us say that " @version 0.1.1 " is what we are matching, and' +
' that the test ensures it happens even embedded within this sample text.' +
' The test ensures our RegExp is SOLID!'
);
done();
}
);
}
);
}
);
}
);
// Feature Check VIII
describe
(
'gulp-bump-version VIII',
function()
{
describe
(
'in buffer mode',
function()
{
it
(
'Should not modify the supplied "file" leaving the version set to 0.1.0. It uses a customized key where the semi-colon has been removed, yet since it exists in our fake file - it should not match.',
function( done )
{
// Create the fake file
let fakeFile = new File
(
{
contents: new Buffer(
'This is just a sample string with a version tag contained in it.' +
' Let us say that " @version: 0.1.0 " is what we are matching, and' +
' that the test ensures it happens even embedded within this sample text.' +
' The test ensures our RegExp is SOLID!'
)
}
);
let bumper = ( bump as any )( { type: 'patch', key: '@version' } );
bumper.write( fakeFile );
bumper.once
(
'data',
function( file )
{
assert( file.isBuffer() );
assert.equal
(
file.contents.toString( 'utf8' ),
'This is just a sample string with a version tag contained in it.' +
' Let us say that " @version: 0.1.0 " is what we are matching, and' +
' that the test ensures it happens even embedded within this sample text.' +
' The test ensures our RegExp is SOLID!'
);
done();
}
);
}
);
}
);
}
);