Reduce boilerplate in a few more service testers [cdnjs continuousphp node shippable wercker gem] (#1957)

Follow up to #1934.
This commit is contained in:
Paul Melnikow
2018-08-27 16:36:35 -04:00
committed by GitHub
parent bedba47d77
commit 64d325b002
7 changed files with 29 additions and 29 deletions

View File

@@ -1,14 +1,14 @@
'use strict'
const Joi = require('joi')
const ServiceTester = require('../service-tester')
const createServiceTester = require('../create-service-tester')
const { isVPlusTripleDottedVersion } = require('../test-validators')
const t = new ServiceTester({ id: 'cdnjs', title: 'CDNJs' })
const t = createServiceTester()
module.exports = t
t.create('cdnjs (valid)')
.get('/v/jquery.json')
.get('/jquery.json')
.expectJSONTypes(
Joi.object().keys({
name: 'cdnjs',
@@ -17,5 +17,5 @@ t.create('cdnjs (valid)')
)
t.create('cdnjs (not found)')
.get('/v/not-a-library.json')
.get('/not-a-library.json')
.expectJSON({ name: 'cdnjs', value: 'not found' })

View File

@@ -4,6 +4,10 @@ const LegacyService = require('../legacy-service')
const { makeBadgeData: getBadgeData } = require('../../lib/badge-data')
module.exports = class ContinuousPhp extends LegacyService {
static get url() {
return { base: 'continuousphp' }
}
static registerLegacyRouteHandler({ camp, cache }) {
camp.route(
/^\/continuousphp\/([^/]+)\/([^/]+\/[^/]+)(?:\/(.+))?\.(svg|png|gif|jpg|json)$/,

View File

@@ -1,10 +1,10 @@
'use strict'
const Joi = require('joi')
const ServiceTester = require('../service-tester')
const createServiceTester = require('../create-service-tester')
const { isBuildStatus } = require('../test-validators')
const t = new ServiceTester({ id: 'continuousphp', title: 'continuousphp' })
const t = createServiceTester()
module.exports = t
t.create('build status on default branch')

View File

@@ -1,15 +1,11 @@
'use strict'
const Joi = require('joi')
const ServiceTester = require('../service-tester')
const createServiceTester = require('../create-service-tester')
const { isMetric } = require('../test-validators')
const t = new ServiceTester({
id: 'gem-downloads',
title: 'Ruby Gem Downloads',
pathPrefix: '/gem',
})
const t = createServiceTester()
module.exports = t
// total downloads

View File

@@ -2,10 +2,10 @@
const { expect } = require('chai')
const Joi = require('joi')
const ServiceTester = require('../service-tester')
const createServiceTester = require('../create-service-tester')
const { Range } = require('semver')
const t = new ServiceTester({ id: 'node', title: 'Node' })
const t = createServiceTester()
module.exports = t
function expectSemverRange(value) {
@@ -13,40 +13,40 @@ function expectSemverRange(value) {
}
t.create('gets the node version of passport')
.get('/v/passport.json')
.get('/passport.json')
.expectJSONTypes(Joi.object({ name: 'node' }).unknown())
.afterJSON(json => {
expectSemverRange(json.value)
})
t.create('gets the node version of @stdlib/stdlib')
.get('/v/@stdlib/stdlib.json')
.get('/@stdlib/stdlib.json')
.expectJSONTypes(Joi.object({ name: 'node' }).unknown())
.afterJSON(json => {
expectSemverRange(json.value)
})
t.create("gets the tagged release's node version version of ionic")
.get('/v/ionic/next.json')
.get('/ionic/next.json')
.expectJSONTypes(Joi.object({ name: 'node@next' }).unknown())
.afterJSON(json => {
expectSemverRange(json.value)
})
t.create('gets the node version of passport from a custom registry')
.get('/v/passport.json?registry_uri=https://registry.npmjs.com')
.get('/passport.json?registry_uri=https://registry.npmjs.com')
.expectJSONTypes(Joi.object({ name: 'node' }).unknown())
.afterJSON(json => {
expectSemverRange(json.value)
})
t.create("gets the tagged release's node version of @cycle/core")
.get('/v/@cycle/core/canary.json')
.get('/@cycle/core/canary.json')
.expectJSONTypes(Joi.object({ name: 'node@canary' }).unknown())
.afterJSON(json => {
expectSemverRange(json.value)
})
t.create('invalid package name')
.get('/v/frodo-is-not-a-package.json')
.get('/frodo-is-not-a-package.json')
.expectJSON({ name: 'node', value: 'package not found' })

View File

@@ -1,11 +1,11 @@
'use strict'
const Joi = require('joi')
const ServiceTester = require('../service-tester')
const createServiceTester = require('../create-service-tester')
const { invalidJSON } = require('../response-fixtures')
const { isBuildStatus } = require('../test-validators')
const t = new ServiceTester({ id: 'shippable', title: 'Shippable CI' })
const t = createServiceTester()
module.exports = t
t.create('build status (valid, without branch)')

View File

@@ -1,29 +1,29 @@
'use strict'
const Joi = require('joi')
const ServiceTester = require('../service-tester')
const createServiceTester = require('../create-service-tester')
const { isBuildStatus } = require('../test-validators')
const t = new ServiceTester({ id: 'wercker', title: 'Wercker' })
const t = createServiceTester()
module.exports = t
t.create('CI build status')
.get('/ci/wercker/go-wercker-api.json')
.get('/wercker/go-wercker-api.json')
.expectJSONTypes(Joi.object().keys({ name: 'build', value: isBuildStatus }))
t.create('CI build status (branch)')
.get('/ci/wercker/go-wercker-api/master.json')
.get('/wercker/go-wercker-api/master.json')
.expectJSONTypes(Joi.object().keys({ name: 'build', value: isBuildStatus }))
t.create('CI build status (old v1 API)')
.get('/ci/559e33c8e982fc615500b357.json')
.get('/559e33c8e982fc615500b357.json')
.expectJSONTypes(Joi.object().keys({ name: 'build', value: isBuildStatus }))
t.create('CI application not found')
.get('/ci/somerandomproject/thatdoesntexits.json')
.get('/somerandomproject/thatdoesntexits.json')
.expectJSON({ name: 'build', value: 'application not found' })
t.create('CI private application')
.get('/ci/wercker/blueprint.json')
.get('/wercker/blueprint.json')
.expectJSON({ name: 'build', value: 'private application not supported' })