Fix Jenkins Cobertura badge and tests (#2468)
This commit is contained in:
committed by
Pierre-Yves B
parent
e9b19416e2
commit
a5bbe9a8fa
@@ -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,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -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 })
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user