]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-7402 do not show identical sets of coverage metrics
authorStas Vilchik <vilchiks@gmail.com>
Tue, 5 Apr 2016 13:01:14 +0000 (15:01 +0200)
committerStas Vilchik <vilchiks@gmail.com>
Tue, 5 Apr 2016 15:23:44 +0000 (17:23 +0200)
server/sonar-web/src/main/js/apps/component-measures/home/DomainMeasures.js

index 8ba732ac8368335045454a150c8a8df731214d05..d7610e48ad4ba262a687cb192c178311d43f4eff 100644 (file)
@@ -35,6 +35,26 @@ const sortMeasures = (measures, order) => {
   ];
 };
 
+const filterCoverageMeasures = measures => {
+  const hasOverallCoverage = !!measures.find(measure => measure.metric.key === 'overall_coverage');
+  const hasUTCoverage = !!measures.find(measure => measure.metric.key === 'coverage');
+  const hasITCoverage = !!measures.find(measure => measure.metric.key === 'it_coverage');
+
+  // display overall coverage only if all types of coverage exist
+  const shouldShowOverallCoverage = hasOverallCoverage && hasUTCoverage && hasITCoverage;
+
+  // skip if we should display overall coverage
+  if (shouldShowOverallCoverage) {
+    return measures;
+  }
+
+  // otherwise, hide all overall coverage measures
+  return measures.filter(measure => {
+    return measure.metric.key.indexOf('overall_') !== 0 &&
+        measure.metric.key.indexOf('new_overall_') !== 0;
+  });
+};
+
 export default class DomainMeasures extends React.Component {
   render () {
     const { component, domains, periods } = this.props;
@@ -43,10 +63,11 @@ export default class DomainMeasures extends React.Component {
     const { measures } = domain;
     const leakPeriodLabel = getLeakPeriodLabel(periods);
 
+    const filteredMeasures = filterCoverageMeasures(measures);
     const conf = domainsConf[domainName];
     const order = conf ? conf.order : [];
     const spaces = conf && conf.spaces ? conf.spaces : [];
-    const sortedMeasures = sortMeasures(measures, order);
+    const sortedMeasures = sortMeasures(filteredMeasures, order);
 
     return (
         <section id="component-measures-domain">