diff --git a/lib/versioning/pep440/range.js b/lib/versioning/pep440/range.js index 5e9cb17f5f4904eac70c6ba95dea497539aa8811..dbfa449b2a84f1638a72d76e63a731fa8eae09d8 100644 --- a/lib/versioning/pep440/range.js +++ b/lib/versioning/pep440/range.js @@ -2,10 +2,10 @@ module.exports = { getNewValue, }; -function getNewValue(config, fromVersion, toVersion) { - if (config.rangeStrategy === 'pin' || config.currentValue.startsWith('==')) { +function getNewValue(currentValue, rangeStrategy, fromVersion, toVersion) { + if (rangeStrategy === 'pin' || currentValue.startsWith('==')) { return '==' + toVersion; } - logger.warn('Unsupported currentValue: ' + config.currentValue); + logger.warn('Unsupported currentValue: ' + currentValue); return toVersion; } diff --git a/lib/versioning/semver-composer/index.js b/lib/versioning/semver-composer/index.js index 0148e9f0b2522230e3b8cac49f95abe2c691f05c..67d773c563b0d9721d1618b54cdffb6d8a7f01b2 100644 --- a/lib/versioning/semver-composer/index.js +++ b/lib/versioning/semver-composer/index.js @@ -26,13 +26,17 @@ const maxSatisfyingVersion = (versions, range) => const minSatisfyingVersion = (versions, range) => semver.minSatisfyingVersion(versions, composer2npm(range)); -function getNewValue(config, fromVersion, toVersion) { - const { currentValue } = config; +function getNewValue(currentValue, rangeStrategy, fromVersion, toVersion) { if ( semver.isValid(currentValue) && composer2npm(currentValue) === currentValue ) { - return semver.getNewValue(config, fromVersion, toVersion); + return semver.getNewValue( + currentValue, + rangeStrategy, + fromVersion, + toVersion + ); } const toMajor = semver.getMajor(toVersion); const toMinor = semver.getMinor(toVersion); diff --git a/lib/versioning/semver/range.js b/lib/versioning/semver/range.js index 8a7bf465977ada4a2412487591c814a52b91c982..ce3e62b2ee8fb21fb67ac74ed1e0c78895ced304 100644 --- a/lib/versioning/semver/range.js +++ b/lib/versioning/semver/range.js @@ -5,8 +5,7 @@ module.exports = { getNewValue, }; -function getNewValue(config, fromVersion, toVersion) { - const { currentValue, rangeStrategy } = config; +function getNewValue(currentValue, rangeStrategy, fromVersion, toVersion) { if (rangeStrategy === 'pin' || isVersion(currentValue)) { return toVersion; } @@ -14,7 +13,8 @@ function getNewValue(config, fromVersion, toVersion) { const element = parsedRange[parsedRange.length - 1]; if (rangeStrategy === 'widen') { const newValue = getNewValue( - { ...config, rangeStrategy: 'replace' }, + currentValue, + 'replace', fromVersion, toVersion ); @@ -40,7 +40,7 @@ function getNewValue(config, fromVersion, toVersion) { } // console.log(range); // Simple range - if (config.rangeStrategy === 'bump') { + if (rangeStrategy === 'bump') { if (parsedRange.length === 1) { if (element.operator === '^') { const split = currentValue.split('.'); diff --git a/lib/workers/repository/process/lookup/index.js b/lib/workers/repository/process/lookup/index.js index 3609e99e4495aa78f2886dda59a25f4c0d8abb15..0b314fa1c0181f2c201b5871c432f3e40368a3e5 100644 --- a/lib/workers/repository/process/lookup/index.js +++ b/lib/workers/repository/process/lookup/index.js @@ -74,7 +74,12 @@ async function lookupUpdates(config) { updates.push({ type: 'pin', isPin: true, - newValue: getNewValue(config, fromVersion, fromVersion), + newValue: getNewValue( + currentValue, + rangeStrategy, + fromVersion, + fromVersion + ), newMajor: getMajor(fromVersion), }); } @@ -91,7 +96,12 @@ async function lookupUpdates(config) { const buckets = {}; for (const toVersion of filteredVersions) { const update = { fromVersion, toVersion }; - update.newValue = getNewValue(config, fromVersion, toVersion); + update.newValue = getNewValue( + currentValue, + rangeStrategy, + fromVersion, + toVersion + ); if (!update.newValue || update.newValue === currentValue) { continue; // eslint-disable-line no-continue } diff --git a/lib/workers/repository/process/lookup/rollback.js b/lib/workers/repository/process/lookup/rollback.js index c62cef0a3cb15f4c3a768c1d0129cb1a712f0ae9..91506c401698dafb1388da68f4240d3156791215 100644 --- a/lib/workers/repository/process/lookup/rollback.js +++ b/lib/workers/repository/process/lookup/rollback.js @@ -35,7 +35,7 @@ function getRollbackUpdate(config, versions) { lessThanVersions.sort(sortVersions); const toVersion = lessThanVersions.pop(); let fromVersion; - const newValue = getNewValue(config, fromVersion, toVersion); + const newValue = getNewValue(currentValue, 'replace', fromVersion, toVersion); return { type: 'rollback', branchName: diff --git a/test/versioning/pep440.spec.js b/test/versioning/pep440.spec.js index df6ec7d434ca9780f47c6e38296933a9935bea85..83998bb82fc22d8555ebcdd9ea9759499b8e5b63 100644 --- a/test/versioning/pep440.spec.js +++ b/test/versioning/pep440.spec.js @@ -80,13 +80,13 @@ describe('pep440.minSatisfyingVersion(versions, range)', () => { describe('pep440.getNewValue()', () => { it('returns double equals', () => { - expect( - pep440.getNewValue({ currentValue: '==1.0.0' }, '1.0.0', '1.0.1') - ).toBe('==1.0.1'); + expect(pep440.getNewValue('==1.0.0', 'replace', '1.0.0', '1.0.1')).toBe( + '==1.0.1' + ); }); it('returns version', () => { - expect( - pep440.getNewValue({ currentValue: '>=1.0.0' }, '1.0.0', '1.0.1') - ).toBe('1.0.1'); + expect(pep440.getNewValue('>=1.0.0', 'replace', '1.0.0', '1.0.1')).toBe( + '1.0.1' + ); }); }); diff --git a/test/versioning/semver-composer.spec.js b/test/versioning/semver-composer.spec.js index 7cd77f71953affb07d980214ab705ed0d81b02de..637818cade319005e8fc59cdbf9fdb8ae284d6e4 100644 --- a/test/versioning/semver-composer.spec.js +++ b/test/versioning/semver-composer.spec.js @@ -62,41 +62,33 @@ describe('semver.matches()', () => { }); describe('semver.getNewValue()', () => { it('bumps short caret to same', () => { - expect( - semver.getNewValue( - { currentValue: '^1.0', rangeStrategy: 'bump' }, - '1.0.0', - '1.0.7' - ) - ).toEqual('^1.0'); + expect(semver.getNewValue('^1.0', 'bump', '1.0.0', '1.0.7')).toEqual( + '^1.0' + ); }); it('handles tilde zero', () => { - expect( - semver.getNewValue({ currentValue: '~0.2' }, '0.2.0', '0.3.0') - ).toEqual('~0.3'); - expect( - semver.getNewValue({ currentValue: '~0.2' }, '0.2.0', '1.1.0') - ).toEqual('~1.0'); + expect(semver.getNewValue('~0.2', 'replace', '0.2.0', '0.3.0')).toEqual( + '~0.3' + ); + expect(semver.getNewValue('~0.2', 'replace', '0.2.0', '1.1.0')).toEqual( + '~1.0' + ); }); it('handles tilde major', () => { - expect( - semver.getNewValue({ currentValue: '~4' }, '4.0.0', '4.2.0') - ).toEqual('~4'); - expect( - semver.getNewValue({ currentValue: '~4' }, '4.0.0', '5.1.0') - ).toEqual('~5'); + expect(semver.getNewValue('~4', 'replace', '4.0.0', '4.2.0')).toEqual('~4'); + expect(semver.getNewValue('~4', 'replace', '4.0.0', '5.1.0')).toEqual('~5'); }); it('handles tilde minor', () => { - expect( - semver.getNewValue({ currentValue: '~4.0' }, '4.0.0', '4.2.0') - ).toEqual('~4.2'); - expect( - semver.getNewValue({ currentValue: '~4.0' }, '4.0.0', '5.1.0') - ).toEqual('~5.1'); + expect(semver.getNewValue('~4.0', 'replace', '4.0.0', '4.2.0')).toEqual( + '~4.2' + ); + expect(semver.getNewValue('~4.0', 'replace', '4.0.0', '5.1.0')).toEqual( + '~5.1' + ); }); it('returns toVersion if unsupported', () => { - expect( - semver.getNewValue({ currentValue: '+4.0.0' }, '4.0.0', '4.2.0') - ).toEqual('4.2.0'); + expect(semver.getNewValue('+4.0.0', 'replace', '4.0.0', '4.2.0')).toEqual( + '4.2.0' + ); }); }); diff --git a/test/versioning/semver.spec.js b/test/versioning/semver.spec.js index 451a5a012690176fbf9277918e6ada01a4a54134..2ee12a224e36cb299dcd43dcc384bad1efc2300c 100644 --- a/test/versioning/semver.spec.js +++ b/test/versioning/semver.spec.js @@ -41,84 +41,44 @@ describe('semver.isSingleVersion()', () => { }); describe('semver.getNewValue()', () => { it('bumps equals', () => { - expect( - semver.getNewValue( - { currentValue: '=1.0.0', rangeStrategy: 'bump' }, - '1.0.0', - '1.1.0' - ) - ).toEqual('=1.1.0'); + expect(semver.getNewValue('=1.0.0', 'bump', '1.0.0', '1.1.0')).toEqual( + '=1.1.0' + ); }); it('bumps short caret to same', () => { - expect( - semver.getNewValue( - { currentValue: '^1.0', rangeStrategy: 'bump' }, - '1.0.0', - '1.0.7' - ) - ).toEqual('^1.0'); + expect(semver.getNewValue('^1.0', 'bump', '1.0.0', '1.0.7')).toEqual( + '^1.0' + ); }); it('bumps short caret to new', () => { - expect( - semver.getNewValue( - { currentValue: '^1.0', rangeStrategy: 'bump' }, - '1.0.0', - '1.1.7' - ) - ).toEqual('^1.1'); + expect(semver.getNewValue('^1.0', 'bump', '1.0.0', '1.1.7')).toEqual( + '^1.1' + ); }); it('bumps short tilde', () => { - expect( - semver.getNewValue( - { currentValue: '~1.0', rangeStrategy: 'bump' }, - '1.0.0', - '1.1.7' - ) - ).toEqual('~1.1'); + expect(semver.getNewValue('~1.0', 'bump', '1.0.0', '1.1.7')).toEqual( + '~1.1' + ); }); it('updates naked caret', () => { - expect( - semver.getNewValue( - { currentValue: '^1', rangeStrategy: 'bump' }, - '1.0.0', - '2.1.7' - ) - ).toEqual('^2'); + expect(semver.getNewValue('^1', 'bump', '1.0.0', '2.1.7')).toEqual('^2'); }); it('bumps naked tilde', () => { - expect( - semver.getNewValue( - { currentValue: '~1', rangeStrategy: 'bump' }, - '1.0.0', - '1.1.7' - ) - ).toEqual('~1'); + expect(semver.getNewValue('~1', 'bump', '1.0.0', '1.1.7')).toEqual('~1'); }); it('replaces equals', () => { - expect( - semver.getNewValue( - { currentValue: '=1.0.0', rangeStrategy: 'replace' }, - '1.0.0', - '1.1.0' - ) - ).toEqual('=1.1.0'); + expect(semver.getNewValue('=1.0.0', 'replace', '1.0.0', '1.1.0')).toEqual( + '=1.1.0' + ); }); it('handles long asterisk', () => { - expect( - semver.getNewValue( - { currentValue: '1.0.*', rangeStrategy: 'replace' }, - '1.0.0', - '1.1.0' - ) - ).toEqual('1.1.*'); + expect(semver.getNewValue('1.0.*', 'replace', '1.0.0', '1.1.0')).toEqual( + '1.1.*' + ); }); it('handles short asterisk', () => { - expect( - semver.getNewValue( - { currentValue: '1.*', rangeStrategy: 'replace' }, - '1.0.0', - '2.1.0' - ) - ).toEqual('2.*'); + expect(semver.getNewValue('1.*', 'replace', '1.0.0', '2.1.0')).toEqual( + '2.*' + ); }); });