Skip to content

Commit

Permalink
fix: correctly determine next pre-release version
Browse files Browse the repository at this point in the history
  • Loading branch information
pvdlg committed Jan 7, 2019
1 parent 1d8c35d commit 0457a07
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 3 deletions.
7 changes: 4 additions & 3 deletions lib/get-next-version.js
@@ -1,14 +1,15 @@
const semver = require('semver');
const {FIRST_RELEASE, FIRSTPRERELEASE} = require('./definitions/constants');

module.exports = ({branch, nextRelease: {type}, lastRelease, logger}) => {
module.exports = ({branch, nextRelease: {type, channel}, lastRelease, logger}) => {
let version;
if (lastRelease.version) {
const {major, minor, patch} = semver.parse(lastRelease.version);
version =
branch.type === 'prerelease'
? semver.prerelease(lastRelease.version)
? semver.prerelease(lastRelease.version) && lastRelease.channel === channel
? semver.inc(lastRelease.version, 'prerelease')
: `${semver.inc(lastRelease.version, type)}-${branch.prerelease}.${FIRSTPRERELEASE}`
: `${semver.inc(`${major}.${minor}.${patch}`, type)}-${branch.prerelease}.${FIRSTPRERELEASE}`
: semver.inc(lastRelease.version, type);
logger.log('The next release version is %s', version);
} else {
Expand Down
30 changes: 30 additions & 0 deletions test/get-next-version.test.js
Expand Up @@ -76,6 +76,16 @@ test('Increase version for patch release on prerelease branch', t => {
}),
'1.0.0-beta.2'
);

t.is(
getNextVersion({
branch: {name: 'alpha', type: 'prerelease', prerelease: 'alpha'},
nextRelease: {type: 'patch', channel: 'alpha'},
lastRelease: {version: '1.0.0-beta.1', channel: 'beta'},
logger: t.context.logger,
}),
'1.0.1-alpha.1'
);
});

test('Increase version for minor release on prerelease branch', t => {
Expand All @@ -98,6 +108,16 @@ test('Increase version for minor release on prerelease branch', t => {
}),
'1.0.0-beta.2'
);

t.is(
getNextVersion({
branch: {name: 'alpha', type: 'prerelease', prerelease: 'alpha'},
nextRelease: {type: 'minor', channel: 'alpha'},
lastRelease: {version: '1.0.0-beta.1', channel: 'beta'},
logger: t.context.logger,
}),
'1.1.0-alpha.1'
);
});

test('Increase version for major release on prerelease branch', t => {
Expand All @@ -120,6 +140,16 @@ test('Increase version for major release on prerelease branch', t => {
}),
'1.0.0-beta.2'
);

t.is(
getNextVersion({
branch: {name: 'alpha', type: 'prerelease', prerelease: 'alpha'},
nextRelease: {type: 'major', channel: 'alpha'},
lastRelease: {version: '1.0.0-beta.1', channel: 'beta'},
logger: t.context.logger,
}),
'2.0.0-alpha.1'
);
});

test('Return 1.0.0 if there is no previous release on prerelease branch', t => {
Expand Down

0 comments on commit 0457a07

Please sign in to comment.