diff --git a/test/translate.ts b/test/translate.ts index 44697c19..5e8934f4 100644 --- a/test/translate.ts +++ b/test/translate.ts @@ -21,6 +21,7 @@ tape('Version string to Semver translator', function (t) { t.test('Broken nightly with leading zeroes', function (st) { st.equal(versionToSemver('0.3.6-nightly.2016.08.27+commit.91d4fa47.Emscripten.clang'), '0.3.6-nightly.2016.8.27+commit.91d4fa47.Emscripten.clang'); st.equal(versionToSemver('0.4.1-nightly.2016.09.09+commit.79867f49.Emscripten.clang'), '0.4.1-nightly.2016.9.9+commit.79867f49.Emscripten.clang'); + st.equal(versionToSemver('0.4.1-nightly.2016.12.06+commit.79867f49.Emscripten.clang'), '0.4.1-nightly.2016.12.6+commit.79867f49.Emscripten.clang'); st.end(); }); t.test('Old style 0.1.1', function (st) { diff --git a/translate.ts b/translate.ts index 54df9ae0..551817f2 100644 --- a/translate.ts +++ b/translate.ts @@ -30,7 +30,8 @@ function versionToSemver (version) { return '0.3.5'; } // This parses the obsolete nightly style where the date can have leading zeroes. - const nightlyParsed = version.match(/^([0-9]+\.[0-9]+\.[0-9]+)-nightly\.([0-9]+)\.0?([1-9])\.0?([1-9])(.*)$/); + // It does not validate the dates, but only if the date format is correct (i.e. YYYY.[M]M.[D]D). + const nightlyParsed = version.match(/^([0-9]+\.[0-9]+\.[0-9]+)-nightly\.([0-9]+)\.0?([1-9]+)\.0?([1-9]+)(.*)$/); if (nightlyParsed) { return nightlyParsed[1] + '-nightly.' + nightlyParsed[2] + '.' + nightlyParsed[3] + '.' + nightlyParsed[4] + nightlyParsed[5]; }