diff --git a/lib/versioning/maven/compare.js b/lib/versioning/maven/compare.js index 9f1cee64532d744707a96f80a0f4ce44361f6757..1ce7fbeff4aefbb227bd392f2482fb0b6c96fcfe 100644 --- a/lib/versioning/maven/compare.js +++ b/lib/versioning/maven/compare.js @@ -89,12 +89,17 @@ const zeroToken = { function tokenize(versionStr) { let buf = []; let result = []; + let leadingZero = true; iterateTokens(versionStr.toLowerCase().replace(/^v/i, ''), token => { if (token.prefix === PREFIX_HYPHEN) { buf = []; } buf.push(token); if (!isNull(token)) { + leadingZero = false; + result = result.concat(buf); + buf = []; + } else if (leadingZero) { result = result.concat(buf); buf = []; } diff --git a/test/versioning/maven.spec.js b/test/versioning/maven.spec.js index 7bb146d83bd894e7fe761c7a144a9600947ba2ca..43e6caf11824eea4cde074195c61e81a5e28e69f 100644 --- a/test/versioning/maven.spec.js +++ b/test/versioning/maven.spec.js @@ -51,6 +51,9 @@ describe('versioning/maven/compare', () => { expect(compare('1-0-final', '1-0')).toEqual(0); expect(compare('1-0', '1.0')).toEqual(0); expect(compare('v1.2.3', '1.2.3')).toEqual(0); + expect(compare('0.0-1552', '0.0-1552')).toEqual(0); + expect(compare('v0.0-1552', '0.0-1552')).toEqual(0); + expect(compare('v0.0.1', '0.0.1')).toEqual(0); }); it('returns less than', () => { expect(compare('1', '1.1')).toEqual(-1); @@ -67,6 +70,8 @@ describe('versioning/maven/compare', () => { expect(compare('1-ga.1', '1-sp.1')).toEqual(-1); expect(compare('1-sp-1', '1-ga-1')).toEqual(-1); expect(compare('1-cr1', '1')).toEqual(-1); + expect(compare('0.0-1552', '1.10.520')).toEqual(-1); + expect(compare('0.0.1', '999')).toEqual(-1); }); it('returns greater than', () => { expect(compare('1.1', '1')).toEqual(1); @@ -83,6 +88,8 @@ describe('versioning/maven/compare', () => { expect(compare('1-sp.1', '1-ga.1')).toEqual(1); expect(compare('1-ga-1', '1-sp-1')).toEqual(1); expect(compare('1', '1-cr1')).toEqual(1); + expect(compare('1.10.520', '0.0-1552')).toEqual(1); + expect(compare('999', '0.0.1')).toEqual(1); }); const invalidRanges = [