import React from 'react';
import { getMeasures } from '../../../api/measures';
const METRICS = [
'coverage',
'line_coverage',
'branch_coverage',
'it_coverage',
'it_line_coverage',
'it_branch_coverage',
'overall_coverage',
'overall_line_coverage',
'overall_branch_coverage'
];
function formatCoverage (value) {
return value != null ? window.formatMeasure(value, 'PERCENT') : '—';
}
export class CoverageDetails extends React.Component {
constructor () {
super();
this.state = { measures: {} };
}
componentDidMount () {
this.requestDetails();
}
requestDetails () {
return getMeasures(this.props.component.key, METRICS).then(measures => {
this.setState({ measures });
});
}
renderCoverage (coverage, lineCoverage, branchCoverage) {
return
Coverage |
{formatCoverage(coverage)}
|
Line Coverage |
{formatCoverage(lineCoverage)}
|
Branch Coverage |
{formatCoverage(branchCoverage)}
|
;
}
renderUTCoverage () {
if (this.state.measures['coverage'] == null) {
return null;
}
return
Unit Tests
{this.renderCoverage(
this.state.measures['coverage'],
this.state.measures['line_coverage'],
this.state.measures['branch_coverage'])}
;
}
renderITCoverage () {
if (this.state.measures['it_coverage'] == null) {
return null;
}
return
Integration Tests
{this.renderCoverage(
this.state.measures['it_coverage'],
this.state.measures['it_line_coverage'],
this.state.measures['it_branch_coverage'])}
;
}
renderOverallCoverage () {
if (this.state.measures['coverage'] == null ||
this.state.measures['it_coverage'] == null ||
this.state.measures['overall_coverage'] == null) {
return null;
}
return
Overall
{this.renderCoverage(
this.state.measures['overall_coverage'],
this.state.measures['overall_line_coverage'],
this.state.measures['overall_branch_coverage'])}
;
}
render () {
return
Coverage Details
{this.renderUTCoverage()}
{this.renderITCoverage()}
{this.renderOverallCoverage()}
;
}
}