more lenient semver coerce in [wordpress] version (#3914)

This commit is contained in:
chris48s
2019-08-27 21:09:37 +01:00
committed by GitHub
parent 51f04ff9d1
commit 136c1f3525
2 changed files with 34 additions and 6 deletions

View File

@@ -30,11 +30,17 @@ function getOfferedVersions() {
})
}
function toSemver(version) {
function toSemver(v) {
const parts = v.split('-')
if (parts.length > 2) {
return v
}
const version = parts[0]
const suffix = parts[1] ? parts[1] : ''
if (version.split('.').length === 2) {
return `${version}.0`
return suffix !== '' ? `${version}.0-${suffix}` : `${version}.0`
} else {
return version
return v
}
}
@@ -43,6 +49,8 @@ async function versionColorForWordpressVersion(version) {
const latestVersion = toSemver(offeredVersions[0])
version = toSemver(version)
if (!semver.valid(latestVersion)) return 'lightgrey'
if (!semver.valid(version)) return 'lightgrey'
if (version === latestVersion || semver.gtr(version, latestVersion)) {
return 'brightgreen'
@@ -54,6 +62,7 @@ async function versionColorForWordpressVersion(version) {
}
module.exports = {
toSemver,
getOfferedVersions,
versionColorForWordpressVersion,
}

View File

@@ -1,10 +1,23 @@
'use strict'
const { expect } = require('chai')
const { versionColorForWordpressVersion } = require('./wordpress-version-color')
const {
toSemver,
versionColorForWordpressVersion,
} = require('./wordpress-version-color')
describe('WordPress version color helpers', function() {
it('versionColorForWordpressVersion()', async function() {
describe('toSemver() function', function() {
it('coerces versions', function() {
expect(toSemver('1.1.1')).to.equal('1.1.1')
expect(toSemver('4.2')).to.equal('4.2.0')
expect(toSemver('1.0.0-beta')).to.equal('1.0.0-beta')
expect(toSemver('1.0-beta')).to.equal('1.0.0-beta')
expect(toSemver('foobar')).to.equal('foobar')
})
})
describe('versionColorForWordpressVersion()', function() {
it('generates correct colours for given versions', async function() {
expect(await versionColorForWordpressVersion('11.2.0')).to.equal(
'brightgreen'
)
@@ -13,5 +26,11 @@ describe('WordPress version color helpers', function() {
)
expect(await versionColorForWordpressVersion('3.2.0')).to.equal('yellow')
expect(await versionColorForWordpressVersion('3.2')).to.equal('yellow')
expect(await versionColorForWordpressVersion('4.7-beta.3')).to.equal(
'yellow'
)
expect(await versionColorForWordpressVersion('cheese')).to.equal(
'lightgrey'
)
})
})