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