Skip to content

Commit

Permalink
upgrade to Joi 14; affects [elm-package jetbrains npmversion pypi vaa…
Browse files Browse the repository at this point in the history
…din-directory dynamic-xml] (#2221)

* upgrade to Joi 14
    Joi 14 throws an exception on regexes which use the `g` flag
    see hapijs/joi#1615
    semver-regex uses the `g` flag
    https://github.com/sindresorhus/semver-regex/blob/master/index.js
    so in order to upgrade Joi, I've swapped out semver-regex
    We'll use joi-extension-semver for semver validation now

* use isVPlusDottedVersionNClauses in jetbrains tests
    some of these projects use version numbers like
    v1.7 or
    v3.0.0.141
  • Loading branch information
chris48s authored Oct 28, 2018
1 parent 6e51178 commit 8752497
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 64 deletions.
87 changes: 32 additions & 55 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
"glob": "^7.1.1",
"gm": "^1.23.0",
"is-css-color": "^1.0.0",
"joi": "13.7.0",
"joi": "14.0.1",
"js-yaml": "^3.11.0",
"jsonpath": "~1.0.0",
"lodash.countby": "^4.6.0",
Expand Down Expand Up @@ -155,6 +155,7 @@
"icedfrisby-nock": "^1.0.0",
"is-png": "^1.1.0",
"is-svg": "^3.0.0",
"joi-extension-semver": "2.0.0",
"lint-staged": "^7.3.0",
"lodash.debounce": "^4.0.8",
"lodash.difference": "^4.5.0",
Expand All @@ -179,7 +180,6 @@
"redis-server": "^1.2.2",
"rimraf": "^2.6.2",
"sazerac": "^0.4.2",
"semver-regex": "^2.0.0",
"sinon": "^7.0.0",
"sinon-chai": "^3.0.0",
"snap-shot-it": "^6.1.8",
Expand Down
17 changes: 13 additions & 4 deletions services/jetbrains/jetbrains.tester.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

const Joi = require('joi')
const ServiceTester = require('../service-tester')
const { isMetric, isSemver } = require('../test-validators')
const { isMetric, isVPlusDottedVersionNClauses } = require('../test-validators')

const t = new ServiceTester({ id: 'jetbrains', title: 'JetBrains' })
module.exports = t
Expand Down Expand Up @@ -215,17 +215,26 @@ t.create('version for unknown plugin')
t.create('version (user friendly plugin id)')
.get('/plugin/v/1347-scala.json')
.expectJSONTypes(
Joi.object().keys({ name: 'jetbrains plugin', value: isSemver })
Joi.object().keys({
name: 'jetbrains plugin',
value: isVPlusDottedVersionNClauses,
})
)

t.create('version (plugin id from plugin.xml)')
.get('/plugin/v/org.intellij.scala.json')
.expectJSONTypes(
Joi.object().keys({ name: 'jetbrains plugin', value: isSemver })
Joi.object().keys({
name: 'jetbrains plugin',
value: isVPlusDottedVersionNClauses,
})
)

t.create('version (number as a plugin id)')
.get('/plugin/v/7495.json')
.expectJSONTypes(
Joi.object().keys({ name: 'jetbrains plugin', value: isSemver })
Joi.object().keys({
name: 'jetbrains plugin',
value: isVPlusDottedVersionNClauses,
})
)
5 changes: 2 additions & 3 deletions services/test-validators.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,11 @@
should be declared in that service's test file.
*/

const Joi = require('joi')
const semverRegex = require('semver-regex')()
const Joi = require('joi').extend(require('joi-extension-semver'))

const withRegex = re => Joi.string().regex(re)

const isSemver = withRegex(semverRegex)
const isSemver = Joi.semver().valid()

const isVPlusTripleDottedVersion = withRegex(/^v[0-9]+.[0-9]+.[0-9]+$/)

Expand Down

0 comments on commit 8752497

Please sign in to comment.