fix: handle branch properties set to false
				
					
				
			This commit is contained in:
		
							parent
							
								
									00420a83c0
								
							
						
					
					
						commit
						751a5f1349
					
				| @ -1,15 +1,15 @@ | |||||||
| const {isUndefined, uniqBy} = require('lodash'); | const {isNil, uniqBy} = require('lodash'); | ||||||
| const semver = require('semver'); | const semver = require('semver'); | ||||||
| const {isMaintenanceRange} = require('../utils'); | const {isMaintenanceRange} = require('../utils'); | ||||||
| 
 | 
 | ||||||
| const maintenance = { | const maintenance = { | ||||||
|   filter: ({name, range}) => !isUndefined(range) || isMaintenanceRange(name), |   filter: ({name, range}) => (!isNil(range) && range !== false) || isMaintenanceRange(name), | ||||||
|   branchValidator: ({range}) => (isUndefined(range) ? true : isMaintenanceRange(range)), |   branchValidator: ({range}) => (isNil(range) ? true : isMaintenanceRange(range)), | ||||||
|   branchesValidator: branches => uniqBy(branches, ({range}) => semver.validRange(range)).length === branches.length, |   branchesValidator: branches => uniqBy(branches, ({range}) => semver.validRange(range)).length === branches.length, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const prerelease = { | const prerelease = { | ||||||
|   filter: ({prerelease}) => !isUndefined(prerelease), |   filter: ({prerelease}) => !isNil(prerelease) && prerelease !== false, | ||||||
|   branchValidator: ({name, prerelease}) => |   branchValidator: ({name, prerelease}) => | ||||||
|     Boolean(prerelease) && Boolean(semver.valid(`1.0.0-${prerelease === true ? name : prerelease}.1`)), |     Boolean(prerelease) && Boolean(semver.valid(`1.0.0-${prerelease === true ? name : prerelease}.1`)), | ||||||
|   branchesValidator: branches => uniqBy(branches, 'prerelease').length === branches.length, |   branchesValidator: branches => uniqBy(branches, 'prerelease').length === branches.length, | ||||||
|  | |||||||
| @ -8,9 +8,10 @@ test('A "maintenance" branch is identified by having a "range" property or a "na | |||||||
|   t.true(maintenance.filter({name: 'some-name', range: '1.x.x'})); |   t.true(maintenance.filter({name: 'some-name', range: '1.x.x'})); | ||||||
|   t.true(maintenance.filter({name: 'some-name', range: '1.1.x'})); |   t.true(maintenance.filter({name: 'some-name', range: '1.1.x'})); | ||||||
|   t.true(maintenance.filter({name: 'some-name', range: ''})); |   t.true(maintenance.filter({name: 'some-name', range: ''})); | ||||||
|   t.true(maintenance.filter({name: 'some-name', range: null})); |   t.true(maintenance.filter({name: 'some-name', range: true})); | ||||||
|   t.true(maintenance.filter({name: 'some-name', range: false})); |  | ||||||
| 
 | 
 | ||||||
|  |   t.false(maintenance.filter({name: 'some-name', range: null})); | ||||||
|  |   t.false(maintenance.filter({name: 'some-name', range: false})); | ||||||
|   t.false(maintenance.filter({name: 'some-name'})); |   t.false(maintenance.filter({name: 'some-name'})); | ||||||
|   t.false(maintenance.filter({name: '1.0.0'})); |   t.false(maintenance.filter({name: '1.0.0'})); | ||||||
|   t.false(maintenance.filter({name: 'x.x.x'})); |   t.false(maintenance.filter({name: 'x.x.x'})); | ||||||
| @ -24,9 +25,8 @@ test('A "maintenance" branches must have a "range" property formatted like "N.x" | |||||||
|   t.false(maintenance.branchValidator({name: 'some-name', range: '>=1.0.0 <2.0.0'})); |   t.false(maintenance.branchValidator({name: 'some-name', range: '>=1.0.0 <2.0.0'})); | ||||||
|   t.false(maintenance.branchValidator({name: 'some-name', range: '1.0.0'})); |   t.false(maintenance.branchValidator({name: 'some-name', range: '1.0.0'})); | ||||||
|   t.false(maintenance.branchValidator({name: 'some-name', range: 'wrong-range'})); |   t.false(maintenance.branchValidator({name: 'some-name', range: 'wrong-range'})); | ||||||
|  |   t.false(maintenance.branchValidator({name: 'some-name', range: true})); | ||||||
|   t.false(maintenance.branchValidator({name: 'some-name', range: ''})); |   t.false(maintenance.branchValidator({name: 'some-name', range: ''})); | ||||||
|   t.false(maintenance.branchValidator({name: 'some-name', range: null})); |  | ||||||
|   t.false(maintenance.branchValidator({name: 'some-name', range: false})); |  | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| test('The "maintenance" branches must have unique ranges', t => { | test('The "maintenance" branches must have unique ranges', t => { | ||||||
| @ -36,13 +36,13 @@ test('The "maintenance" branches must have unique ranges', t => { | |||||||
|   t.false(maintenance.branchesValidator([{range: '1.x.x'}, {range: '1.x'}])); |   t.false(maintenance.branchesValidator([{range: '1.x.x'}, {range: '1.x'}])); | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| test('A "prerelease" branch is identified by having a range "prerelease" property', t => { | test('A "prerelease" branch is identified by having a thruthy "prerelease" property', t => { | ||||||
|   t.true(prerelease.filter({name: 'some-name', prerelease: true})); |   t.true(prerelease.filter({name: 'some-name', prerelease: true})); | ||||||
|   t.true(prerelease.filter({name: 'some-name', prerelease: 'beta'})); |   t.true(prerelease.filter({name: 'some-name', prerelease: 'beta'})); | ||||||
|   t.true(prerelease.filter({name: 'some-name', prerelease: ''})); |   t.true(prerelease.filter({name: 'some-name', prerelease: ''})); | ||||||
|   t.true(prerelease.filter({name: 'some-name', prerelease: null})); |  | ||||||
|   t.true(prerelease.filter({name: 'some-name', prerelease: false})); |  | ||||||
| 
 | 
 | ||||||
|  |   t.false(prerelease.filter({name: 'some-name', prerelease: null})); | ||||||
|  |   t.false(prerelease.filter({name: 'some-name', prerelease: false})); | ||||||
|   t.false(prerelease.filter({name: 'some-name'})); |   t.false(prerelease.filter({name: 'some-name'})); | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user