- Add only the most recent release to a channel (rather than adding all the one not added yet) - Avoid attempting to ad the version twice in case that version is already present in multiple upper branches
166 lines
4.2 KiB
JavaScript
166 lines
4.2 KiB
JavaScript
import test from 'ava';
|
|
import {stub} from 'sinon';
|
|
import getNextVersion from '../lib/get-next-version';
|
|
|
|
test.beforeEach(t => {
|
|
// Stub the logger functions
|
|
t.context.log = stub();
|
|
t.context.logger = {log: t.context.log};
|
|
});
|
|
|
|
test('Increase version for patch release', t => {
|
|
t.is(
|
|
getNextVersion({
|
|
branch: {name: 'master', type: 'release'},
|
|
nextRelease: {type: 'patch'},
|
|
lastRelease: {version: '1.0.0', channels: [undefined]},
|
|
logger: t.context.logger,
|
|
}),
|
|
'1.0.1'
|
|
);
|
|
});
|
|
|
|
test('Increase version for minor release', t => {
|
|
t.is(
|
|
getNextVersion({
|
|
branch: {name: 'master', type: 'release'},
|
|
nextRelease: {type: 'minor'},
|
|
lastRelease: {version: '1.0.0', channels: [undefined]},
|
|
logger: t.context.logger,
|
|
}),
|
|
'1.1.0'
|
|
);
|
|
});
|
|
|
|
test('Increase version for major release', t => {
|
|
t.is(
|
|
getNextVersion({
|
|
branch: {name: 'master', type: 'release'},
|
|
nextRelease: {type: 'major'},
|
|
lastRelease: {version: '1.0.0', channels: [undefined]},
|
|
logger: t.context.logger,
|
|
}),
|
|
'2.0.0'
|
|
);
|
|
});
|
|
|
|
test('Return 1.0.0 if there is no previous release', t => {
|
|
t.is(
|
|
getNextVersion({
|
|
branch: {name: 'master', type: 'release'},
|
|
nextRelease: {type: 'minor'},
|
|
lastRelease: {},
|
|
logger: t.context.logger,
|
|
}),
|
|
'1.0.0'
|
|
);
|
|
});
|
|
|
|
test('Increase version for patch release on prerelease branch', t => {
|
|
t.is(
|
|
getNextVersion({
|
|
branch: {name: 'beta', type: 'prerelease', prerelease: 'beta'},
|
|
nextRelease: {type: 'patch'},
|
|
lastRelease: {version: '1.0.0', channels: [undefined]},
|
|
logger: t.context.logger,
|
|
}),
|
|
'1.0.1-beta.1'
|
|
);
|
|
|
|
t.is(
|
|
getNextVersion({
|
|
branch: {name: 'beta', type: 'prerelease', prerelease: 'beta'},
|
|
nextRelease: {type: 'patch'},
|
|
lastRelease: {version: '1.0.0-beta.1', channels: [undefined]},
|
|
logger: t.context.logger,
|
|
}),
|
|
'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', channels: ['beta']},
|
|
logger: t.context.logger,
|
|
}),
|
|
'1.0.1-alpha.1'
|
|
);
|
|
});
|
|
|
|
test('Increase version for minor release on prerelease branch', t => {
|
|
t.is(
|
|
getNextVersion({
|
|
branch: {name: 'beta', type: 'prerelease', prerelease: 'beta'},
|
|
nextRelease: {type: 'minor'},
|
|
lastRelease: {version: '1.0.0', channels: [undefined]},
|
|
logger: t.context.logger,
|
|
}),
|
|
'1.1.0-beta.1'
|
|
);
|
|
|
|
t.is(
|
|
getNextVersion({
|
|
branch: {name: 'beta', type: 'prerelease', prerelease: 'beta'},
|
|
nextRelease: {type: 'minor'},
|
|
lastRelease: {version: '1.0.0-beta.1', channels: [undefined]},
|
|
logger: t.context.logger,
|
|
}),
|
|
'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', channels: ['beta']},
|
|
logger: t.context.logger,
|
|
}),
|
|
'1.1.0-alpha.1'
|
|
);
|
|
});
|
|
|
|
test('Increase version for major release on prerelease branch', t => {
|
|
t.is(
|
|
getNextVersion({
|
|
branch: {name: 'beta', type: 'prerelease', prerelease: 'beta'},
|
|
nextRelease: {type: 'major'},
|
|
lastRelease: {version: '1.0.0', channels: [undefined]},
|
|
logger: t.context.logger,
|
|
}),
|
|
'2.0.0-beta.1'
|
|
);
|
|
|
|
t.is(
|
|
getNextVersion({
|
|
branch: {name: 'beta', type: 'prerelease', prerelease: 'beta'},
|
|
nextRelease: {type: 'major'},
|
|
lastRelease: {version: '1.0.0-beta.1', channels: [undefined]},
|
|
logger: t.context.logger,
|
|
}),
|
|
'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', channels: ['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 => {
|
|
t.is(
|
|
getNextVersion({
|
|
branch: {name: 'beta', type: 'prerelease', prerelease: 'beta'},
|
|
nextRelease: {type: 'minor'},
|
|
lastRelease: {},
|
|
logger: t.context.logger,
|
|
}),
|
|
'1.0.0-beta.1'
|
|
);
|
|
});
|