diff --git a/lib/versioning/maven/compare.js b/lib/versioning/maven/compare.js index e5efe85802570d22a2a8aeb06cae52e4ec4483b0..9f1cee64532d744707a96f80a0f4ce44361f6757 100644 --- a/lib/versioning/maven/compare.js +++ b/lib/versioning/maven/compare.js @@ -215,7 +215,7 @@ function compare(left, right) { return 0; } -function isSingleVersion(version) { +function isVersion(version) { // istanbul ignore if if (!version) return false; if (!/^[a-z0-9.-]+$/i.test(version)) return false; @@ -225,11 +225,11 @@ function isSingleVersion(version) { return !!tokens.length; } -function isVersion(str) { +function isValid(str) { if (!str) { return false; } - return isSingleVersion(str) || !!parseRange(str); + return isVersion(str) || !!parseRange(str); } const INCLUDING_POINT = 'INCLUDING_POINT'; @@ -423,8 +423,9 @@ module.exports = { tokenize, isSubversion, compare, - isSingleVersion, isVersion, + isSingleVersion: isVersion, + isValid, parseRange, rangeToStr, INCLUDING_POINT, diff --git a/lib/versioning/maven/index.js b/lib/versioning/maven/index.js index 6d09c121b4e5012cf35b68cd8e8055f63cbc8a0f..f34f5fd2887de4b5a43d6b22df36b737ce4f16ab 100644 --- a/lib/versioning/maven/index.js +++ b/lib/versioning/maven/index.js @@ -1,5 +1,6 @@ const { isVersion, + isValid, tokenize, compare, TYPE_NUMBER, @@ -14,7 +15,7 @@ const equals = (a, b) => compare(a, b) === 0; function matches(a, b) { if (!b) return false; - if (isSingleVersion(b)) return equals(a, b); + if (isVersion(b)) return equals(a, b); const ranges = parseRange(b); if (!ranges) return false; return ranges.reduce((result, range) => { @@ -44,7 +45,7 @@ function matches(a, b) { } const getMajor = version => { - if (isSingleVersion(version)) { + if (isVersion(version)) { const tokens = tokenize(version); const majorToken = tokens[0]; return majorToken.val; @@ -53,7 +54,7 @@ const getMajor = version => { }; const getMinor = version => { - if (isSingleVersion(version)) { + if (isVersion(version)) { const tokens = tokenize(version); const minorToken = tokens[1]; if (minorToken && minorToken.type === TYPE_NUMBER) { @@ -65,7 +66,7 @@ const getMinor = version => { }; const getPatch = version => { - if (isSingleVersion(version)) { + if (isVersion(version)) { const tokens = tokenize(version); const minorToken = tokens[1]; const patchToken = tokens[2]; @@ -84,7 +85,7 @@ const getPatch = version => { const isGreaterThan = (a, b) => compare(a, b) === 1; const isStable = version => { - if (isSingleVersion(version)) { + if (isVersion(version)) { const tokens = tokenize(version); const qualToken = tokens.find(token => token.type === TYPE_QUALIFIER); if (qualToken) { @@ -102,10 +103,10 @@ const isStable = version => { }; const maxSatisfyingVersion = (versions, range) => - versions.find(version => equals(version, range)); + versions.find(version => matches(version, range)); function getNewValue(currentValue, rangeStrategy, fromVersion, toVersion) { - return isSingleVersion(currentValue) + return isVersion(currentValue) ? toVersion : autoExtendMavenRange(currentValue, toVersion); } @@ -119,7 +120,7 @@ module.exports = { isGreaterThan, isSingleVersion, isStable, - isValid: isVersion, + isValid, isVersion, matches, maxSatisfyingVersion, diff --git a/test/versioning/maven.spec.js b/test/versioning/maven.spec.js index 4e7ee9438b6818f2e870a62c37470ac8b6062df9..7bb146d83bd894e7fe761c7a144a9600947ba2ca 100644 --- a/test/versioning/maven.spec.js +++ b/test/versioning/maven.spec.js @@ -5,6 +5,7 @@ const { autoExtendMavenRange, } = require('../../lib/versioning/maven/compare'); const { + isValid, isVersion, isStable, getMajor, @@ -239,6 +240,11 @@ describe('versioning/maven/compare', () => { }); describe('versioning/maven/index', () => { + it('returns valid', () => { + expect(isValid('1.0.0')).toBe(true); + expect(isValid('[1.12.6,1.18.6]')).toBe(true); + expect(isValid()).toBe(false); + }); it('validates version string', () => { expect(isVersion('')).toBe(false); expect(isVersion('1.0.0')).toBe(true); @@ -253,6 +259,7 @@ describe('versioning/maven/index', () => { expect(isVersion('1.')).toBe(false); expect(isVersion('-1')).toBe(false); expect(isVersion('1-')).toBe(false); + expect(isVersion('[1.12.6,1.18.6]')).toBe(false); }); it('checks if version is stable', () => { expect(isStable('')).toBeNull();