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()}
; } }