feat: allow addChannel
plugins to return false
in order to signify no release was done
This commit is contained in:
parent
aa48514f85
commit
e1c7269cb3
@ -86,7 +86,7 @@ module.exports = {
|
||||
transform: (release, step, {nextRelease}) => ({
|
||||
...nextRelease,
|
||||
...(release || {}),
|
||||
...step,
|
||||
...(release === false ? {} : step),
|
||||
}),
|
||||
}),
|
||||
},
|
||||
|
@ -1139,30 +1139,23 @@ test('Allow local releases with "noCi" option', async t => {
|
||||
t.is(success.callCount, 1);
|
||||
});
|
||||
|
||||
test('Accept "undefined" value returned by "generateNotes" and "false" by "publish"', async t => {
|
||||
// Create a git repository, set the current working directory at the root of the repo
|
||||
test('Accept "undefined" value returned by "generateNotes" and "false" by "publish" and "addChannel"', async t => {
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
// Add commits to the master branch
|
||||
let commits = await gitCommits(['First'], {cwd});
|
||||
// Create the tag corresponding to version 1.0.0
|
||||
await gitCommits(['First'], {cwd});
|
||||
await gitTagVersion('v1.0.0', undefined, {cwd});
|
||||
// Add new commits to the master branch
|
||||
commits = (await gitCommits(['Second'], {cwd})).concat(commits);
|
||||
await gitTagVersion('v1.0.0@next', undefined, {cwd});
|
||||
await gitTagVersion('v1.1.0@next', undefined, {cwd});
|
||||
await gitPush(repositoryUrl, 'master', {cwd});
|
||||
await gitCheckout('next', true, {cwd});
|
||||
await gitPush('origin', 'next', {cwd});
|
||||
await gitCheckout('master', false, {cwd});
|
||||
|
||||
const lastRelease = {
|
||||
name: 'v1.0.0',
|
||||
version: '1.0.0',
|
||||
gitHead: commits[commits.length - 1].hash,
|
||||
gitTag: 'v1.0.0',
|
||||
channel: undefined,
|
||||
};
|
||||
const nextRelease = {
|
||||
name: 'v2.0.0',
|
||||
type: 'major',
|
||||
version: '2.0.0',
|
||||
name: 'v1.2.0',
|
||||
type: 'minor',
|
||||
version: '1.2.0',
|
||||
gitHead: await getGitHead({cwd}),
|
||||
gitTag: 'v2.0.0',
|
||||
gitTag: 'v1.2.0',
|
||||
channel: undefined,
|
||||
};
|
||||
const analyzeCommits = stub().resolves(nextRelease.type);
|
||||
@ -1171,15 +1164,16 @@ test('Accept "undefined" value returned by "generateNotes" and "false" by "publi
|
||||
const notes2 = 'Release notes 2';
|
||||
const generateNotes2 = stub().resolves(notes2);
|
||||
const publish = stub().resolves(false);
|
||||
const addChannel = stub().resolves(false);
|
||||
|
||||
const options = {
|
||||
branches: ['master'],
|
||||
branches: ['master', 'next'],
|
||||
repositoryUrl,
|
||||
verifyConditions: stub().resolves(),
|
||||
analyzeCommits,
|
||||
verifyRelease,
|
||||
generateNotes: [generateNotes1, generateNotes2],
|
||||
addChannel: stub().resolves(),
|
||||
addChannel,
|
||||
prepare: stub().resolves(),
|
||||
publish,
|
||||
success: stub().resolves(),
|
||||
@ -1200,20 +1194,12 @@ test('Accept "undefined" value returned by "generateNotes" and "false" by "publi
|
||||
);
|
||||
|
||||
t.is(analyzeCommits.callCount, 1);
|
||||
t.deepEqual(analyzeCommits.args[0][1].lastRelease, lastRelease);
|
||||
|
||||
t.is(verifyRelease.callCount, 1);
|
||||
t.deepEqual(verifyRelease.args[0][1].lastRelease, lastRelease);
|
||||
|
||||
t.is(generateNotes1.callCount, 1);
|
||||
t.deepEqual(generateNotes1.args[0][1].lastRelease, lastRelease);
|
||||
|
||||
t.is(generateNotes2.callCount, 1);
|
||||
t.deepEqual(generateNotes2.args[0][1].lastRelease, lastRelease);
|
||||
|
||||
t.is(generateNotes1.callCount, 2);
|
||||
t.is(generateNotes2.callCount, 2);
|
||||
t.is(addChannel.callCount, 1);
|
||||
t.is(publish.callCount, 1);
|
||||
t.deepEqual(publish.args[0][1].lastRelease, lastRelease);
|
||||
t.is(publish.args[0][1].nextRelease.notes, notes2);
|
||||
t.deepEqual(publish.args[0][1].nextRelease, {...nextRelease, notes: notes2});
|
||||
});
|
||||
|
||||
test('Returns false if triggered by a PR', async t => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user