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