Fix Jenkins Cobertura badge and tests (#2468)

This commit is contained in:
Caleb Cartwright
2018-12-06 16:07:27 -06:00
committed by Pierre-Yves B
parent e9b19416e2
commit a5bbe9a8fa
2 changed files with 14 additions and 2 deletions

View File

@@ -22,13 +22,14 @@ const coberturaCoverageSchema = Joi.object({
elements: Joi.array()
.items(
Joi.object({
name: 'Lines',
name: Joi.string().required(),
ratio: Joi.number()
.min(0)
.max(100)
.required(),
})
)
.has(Joi.object({ name: 'Lines' }))
.min(1)
.required(),
}).required(),
@@ -130,8 +131,11 @@ class CoberturaJenkinsCoverage extends BaseJenkinsCoverage {
options,
schema: coberturaCoverageSchema,
})
const lineCoverage = json.results.elements.filter(
element => element.name === 'Lines'
)[0]
return this.constructor.render({
coverage: json.results.elements[0].ratio,
coverage: lineCoverage.ratio,
})
}

View File

@@ -1,5 +1,7 @@
'use strict'
const Joi = require('joi')
const { isIntegerPercentage } = require('../test-validators')
const ServiceTester = require('../service-tester')
const t = new ServiceTester({
@@ -168,3 +170,9 @@ t.create('cobertura: invalid data response (missing line coverage)')
t.create('cobertura: job not found')
.get('/c/https/updates.jenkins-ci.org/job/does-not-exist.json')
.expectJSON({ name: 'coverage', value: 'job or coverage not found' })
t.create('cobertura: job found')
.get('/c/https/builds.apache.org/job/olingo-odata4-cobertura.json')
.expectJSONTypes(
Joi.object().keys({ name: 'coverage', value: isIntegerPercentage })
)