fix: normalize ci: false into noCi: true after configs get merged (#1732) thanks @dominykas
This makes sure that options.ci is respected even when set inside a shareable config
This commit is contained in:
		
							parent
							
								
									da75a9c60a
								
							
						
					
					
						commit
						21c151f167
					
				| @ -27,9 +27,6 @@ module.exports = async (context, cliOptions) => { | ||||
| 
 | ||||
|   // Merge config file options and CLI/API options
 | ||||
|   let options = {...config, ...cliOptions}; | ||||
|   if (options.ci === false) { | ||||
|     options.noCi = true; | ||||
|   } | ||||
| 
 | ||||
|   const pluginsPath = {}; | ||||
|   let extendPaths; | ||||
| @ -87,6 +84,10 @@ module.exports = async (context, cliOptions) => { | ||||
|     ...(options.branches ? {branches: castArray(options.branches)} : {}), | ||||
|   }; | ||||
| 
 | ||||
|   if (options.ci === false) { | ||||
|     options.noCi = true; | ||||
|   } | ||||
| 
 | ||||
|   debug('options values: %O', options); | ||||
| 
 | ||||
|   return {options, plugins: await plugins({...context, options}, pluginsPath)}; | ||||
|  | ||||
| @ -505,10 +505,10 @@ test('Allow to unset properties defined in shareable config with "undefined"', a | ||||
| test('Throw an Error if one of the shareable config cannot be found', async (t) => { | ||||
|   // Create a git repository, set the current working directory at the root of the repo
 | ||||
|   const {cwd} = await gitRepo(); | ||||
|   const pkhOptions = {extends: ['./shareable1.json', 'non-existing-path']}; | ||||
|   const pkgOptions = {extends: ['./shareable1.json', 'non-existing-path']}; | ||||
|   const options1 = {analyzeCommits: 'analyzeCommits'}; | ||||
|   // Create package.json and shareable.json in repository root
 | ||||
|   await outputJson(path.resolve(cwd, 'package.json'), {release: pkhOptions}); | ||||
|   await outputJson(path.resolve(cwd, 'package.json'), {release: pkgOptions}); | ||||
|   await outputJson(path.resolve(cwd, 'shareable1.json'), options1); | ||||
| 
 | ||||
|   await t.throwsAsync(t.context.getConfig({cwd}), { | ||||
| @ -516,3 +516,20 @@ test('Throw an Error if one of the shareable config cannot be found', async (t) | ||||
|     code: 'MODULE_NOT_FOUND', | ||||
|   }); | ||||
| }); | ||||
| 
 | ||||
| test('Convert "ci" option to "noCi" when set from extended config', async (t) => { | ||||
|   // Create a git repository, set the current working directory at the root of the repo
 | ||||
|   const {cwd} = await gitRepo(); | ||||
|   const pkgOptions = {extends: './no-ci.json'}; | ||||
|   const options = { | ||||
|     ci: false, | ||||
|   }; | ||||
|   // Create package.json and shareable.json in repository root
 | ||||
|   await outputJson(path.resolve(cwd, 'package.json'), {release: pkgOptions}); | ||||
|   await outputJson(path.resolve(cwd, 'no-ci.json'), options); | ||||
| 
 | ||||
|   const {options: result} = await t.context.getConfig({cwd}); | ||||
| 
 | ||||
|   t.is(result.ci, false); | ||||
|   t.is(result.noCi, true); | ||||
| }); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user