mirror of
https://github.com/SonarSource/sonarqube.git
synced 2024-09-13 15:45:52 +02:00
SONAR-8326 Drop all code related to IT/overall coverage on web side (#1348)
This commit is contained in:
parent
f52dd8d40f
commit
5da7c8f3f1
@ -27,7 +27,6 @@ import Search from './Search';
|
||||
import ListFooter from '../../../components/controls/ListFooter';
|
||||
import { retrieveComponentChildren, retrieveComponent, loadMoreChildren, parseError } from '../utils';
|
||||
import { addComponent, addComponentBreadcrumbs } from '../bucket';
|
||||
import { selectCoverageMetric } from '../../../helpers/measures';
|
||||
|
||||
import '../code.css';
|
||||
|
||||
@ -70,8 +69,6 @@ export default class App extends React.Component {
|
||||
const isView = component.qualifier === 'VW' || component.qualifier === 'SVW';
|
||||
retrieveComponentChildren(component.key, isView).then(r => {
|
||||
addComponent(r.baseComponent);
|
||||
const prefix = selectCoverageMetric(r.baseComponent.measures);
|
||||
this.coverageMetric = `${prefix}coverage`;
|
||||
this.handleUpdate();
|
||||
}).catch(e => {
|
||||
if (this.mounted) {
|
||||
@ -192,8 +189,7 @@ export default class App extends React.Component {
|
||||
<Components
|
||||
rootComponent={component}
|
||||
baseComponent={baseComponent}
|
||||
components={components}
|
||||
coverageMetric={this.coverageMetric}/>
|
||||
components={components}/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
|
@ -66,7 +66,7 @@ export default class Component extends React.Component {
|
||||
}
|
||||
|
||||
render () {
|
||||
const { component, rootComponent, selected, previous, coverageMetric, canBrowse } = this.props;
|
||||
const { component, rootComponent, selected, previous, canBrowse } = this.props;
|
||||
const isView = ['VW', 'SVW'].includes(rootComponent.qualifier);
|
||||
|
||||
let componentAction = null;
|
||||
@ -93,7 +93,7 @@ export default class Component extends React.Component {
|
||||
{ metric: 'bugs', type: 'SHORT_INT' },
|
||||
{ metric: 'vulnerabilities', type: 'SHORT_INT' },
|
||||
{ metric: 'code_smells', type: 'SHORT_INT' },
|
||||
{ metric: coverageMetric, type: 'PERCENT' },
|
||||
{ metric: 'coverage', type: 'PERCENT' },
|
||||
{ metric: 'duplicated_lines_density', type: 'PERCENT' }
|
||||
];
|
||||
|
||||
|
@ -23,7 +23,7 @@ import Component from './Component';
|
||||
import ComponentsEmpty from './ComponentsEmpty';
|
||||
import ComponentsHeader from './ComponentsHeader';
|
||||
|
||||
const Components = ({ rootComponent, baseComponent, components, selected, coverageMetric }) => (
|
||||
const Components = ({ rootComponent, baseComponent, components, selected }) => (
|
||||
<table className="data zebra">
|
||||
<ComponentsHeader baseComponent={baseComponent} rootComponent={rootComponent}/>
|
||||
{baseComponent && (
|
||||
@ -31,8 +31,7 @@ const Components = ({ rootComponent, baseComponent, components, selected, covera
|
||||
<Component
|
||||
key={baseComponent.key}
|
||||
rootComponent={rootComponent}
|
||||
component={baseComponent}
|
||||
coverageMetric={coverageMetric}/>
|
||||
component={baseComponent}/>
|
||||
<tr className="blank">
|
||||
<td colSpan="8"> </td>
|
||||
</tr>
|
||||
@ -47,7 +46,6 @@ const Components = ({ rootComponent, baseComponent, components, selected, covera
|
||||
component={component}
|
||||
selected={component === selected}
|
||||
previous={index > 0 ? list[index - 1] : null}
|
||||
coverageMetric={coverageMetric}
|
||||
canBrowse={true}/>
|
||||
))
|
||||
) : (
|
||||
|
@ -35,17 +35,11 @@ const METRICS = [
|
||||
'code_smells',
|
||||
'bugs',
|
||||
'vulnerabilities',
|
||||
'coverage',
|
||||
'duplicated_lines_density',
|
||||
'alert_status'
|
||||
];
|
||||
|
||||
const METRICS_WITH_COVERAGE = [
|
||||
...METRICS,
|
||||
'coverage',
|
||||
'it_coverage',
|
||||
'overall_coverage'
|
||||
];
|
||||
|
||||
const VIEW_METRICS = [
|
||||
'releasability_rating',
|
||||
'alert_status',
|
||||
@ -117,7 +111,7 @@ function storeChildrenBreadcrumbs (parentComponentKey, children) {
|
||||
}
|
||||
|
||||
function getMetrics (isView) {
|
||||
return isView ? VIEW_METRICS : METRICS_WITH_COVERAGE;
|
||||
return isView ? VIEW_METRICS : METRICS;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -18,18 +18,6 @@
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
export default {
|
||||
'overall_coverage': ['overall_uncovered_lines', 'overall_uncovered_conditions'],
|
||||
'overall_line_coverage': ['overall_uncovered_lines'],
|
||||
'overall_branch_coverage': ['overall_uncovered_conditions'],
|
||||
'overall_uncovered_lines': ['overall_line_coverage'],
|
||||
'overall_uncovered_conditions': ['overall_branch_coverage'],
|
||||
|
||||
'new_overall_coverage': ['new_overall_uncovered_lines', 'new_overall_uncovered_conditions'],
|
||||
'new_overall_line_coverage': ['new_overall_uncovered_lines'],
|
||||
'new_overall_branch_coverage': ['new_overall_uncovered_conditions'],
|
||||
'new_overall_uncovered_lines': ['new_overall_line_coverage'],
|
||||
'new_overall_uncovered_conditions': ['new_overall_branch_coverage'],
|
||||
|
||||
'coverage': ['uncovered_lines', 'uncovered_conditions'],
|
||||
'line_coverage': ['uncovered_lines'],
|
||||
'branch_coverage': ['uncovered_conditions'],
|
||||
@ -42,18 +30,6 @@ export default {
|
||||
'new_uncovered_lines': ['new_line_coverage'],
|
||||
'new_uncovered_conditions': ['new_branch_coverage'],
|
||||
|
||||
'it_coverage': ['it_uncovered_lines', 'it_uncovered_conditions'],
|
||||
'it_line_coverage': ['it_uncovered_lines'],
|
||||
'it_branch_coverage': ['it_uncovered_conditions'],
|
||||
'it_uncovered_lines': ['it_line_coverage'],
|
||||
'it_uncovered_conditions': ['it_branch_coverage'],
|
||||
|
||||
'new_it_coverage': ['new_it_uncovered_lines', 'new_it_uncovered_conditions'],
|
||||
'new_it_line_coverage': ['new_it_uncovered_lines'],
|
||||
'new_it_branch_coverage': ['new_it_uncovered_conditions'],
|
||||
'new_it_uncovered_lines': ['new_it_line_coverage'],
|
||||
'new_it_uncovered_conditions': ['new_it_branch_coverage'],
|
||||
|
||||
'duplicated_lines_density': ['duplicated_lines'],
|
||||
'new_duplicated_lines_density': ['new_duplicated_lines'],
|
||||
'duplicated_lines': ['duplicated_lines_density'],
|
||||
|
@ -68,27 +68,11 @@ export const domains = {
|
||||
|
||||
'Coverage': {
|
||||
main: [
|
||||
'overall_coverage',
|
||||
'coverage',
|
||||
'it_coverage',
|
||||
'new_overall_coverage',
|
||||
'new_coverage',
|
||||
'new_it_coverage',
|
||||
'tests'
|
||||
],
|
||||
order: [
|
||||
'overall_coverage',
|
||||
'new_overall_coverage',
|
||||
'overall_line_coverage',
|
||||
'new_overall_line_coverage',
|
||||
'overall_branch_coverage',
|
||||
'new_overall_branch_coverage',
|
||||
'overall_uncovered_lines',
|
||||
'new_overall_uncovered_lines',
|
||||
'overall_uncovered_conditions',
|
||||
'new_overall_uncovered_conditions',
|
||||
'new_overall_lines_to_cover',
|
||||
|
||||
'coverage',
|
||||
'new_coverage',
|
||||
'line_coverage',
|
||||
@ -101,18 +85,6 @@ export const domains = {
|
||||
'new_uncovered_conditions',
|
||||
'new_lines_to_cover',
|
||||
|
||||
'it_coverage',
|
||||
'new_it_coverage',
|
||||
'it_line_coverage',
|
||||
'new_it_line_coverage',
|
||||
'it_branch_coverage',
|
||||
'new_it_branch_coverage',
|
||||
'it_uncovered_lines',
|
||||
'new_it_uncovered_lines',
|
||||
'it_uncovered_conditions',
|
||||
'new_it_uncovered_conditions',
|
||||
'new_it_lines_to_cover',
|
||||
|
||||
'lines_to_cover',
|
||||
|
||||
'tests',
|
||||
@ -122,11 +94,6 @@ export const domains = {
|
||||
'skipped_tests',
|
||||
'test_success_density',
|
||||
'test_execution_time'
|
||||
],
|
||||
spaces: [
|
||||
'coverage',
|
||||
'it_coverage',
|
||||
'tests'
|
||||
]
|
||||
},
|
||||
|
||||
|
@ -33,26 +33,6 @@ function sortMeasures (measures, order) {
|
||||
];
|
||||
}
|
||||
|
||||
function 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;
|
||||
});
|
||||
}
|
||||
|
||||
function filterIssuesMeasures (measures) {
|
||||
const BANNED_MEASURES = [
|
||||
'blocker_violations',
|
||||
@ -73,7 +53,7 @@ const HomeMeasuresList = ({ domain, component }) => {
|
||||
const { measures, name } = domain;
|
||||
const config = domains[name] || {};
|
||||
|
||||
const filteredMeasures = filterCoverageMeasures(filterIssuesMeasures(measures));
|
||||
const filteredMeasures = filterIssuesMeasures(measures);
|
||||
|
||||
const configMain = config.main || [];
|
||||
const [mainMeasures, otherMeasures] = partition(filteredMeasures, measure => configMain.includes(measure.metric.key));
|
||||
|
@ -57,15 +57,9 @@ const METRICS = [
|
||||
'new_technical_debt',
|
||||
|
||||
// coverage
|
||||
'overall_coverage',
|
||||
'new_overall_coverage',
|
||||
'coverage',
|
||||
'new_coverage',
|
||||
'it_coverage',
|
||||
'new_it_coverage',
|
||||
'new_lines_to_cover',
|
||||
'new_it_lines_to_cover',
|
||||
'new_overall_lines_to_cover',
|
||||
'tests',
|
||||
|
||||
// duplications
|
||||
@ -83,8 +77,6 @@ const HISTORY_METRICS_LIST = [
|
||||
'sqale_index',
|
||||
'duplicated_lines_density',
|
||||
'ncloc',
|
||||
'overall_coverage',
|
||||
'it_coverage',
|
||||
'coverage'
|
||||
];
|
||||
|
||||
|
@ -26,41 +26,20 @@ import { formatMeasure, getPeriodValue } from '../../../helpers/measures';
|
||||
import { translate } from '../../../helpers/l10n';
|
||||
|
||||
class Coverage extends React.Component {
|
||||
getCoverageMetricPrefix () {
|
||||
getCoverage () {
|
||||
const { measures } = this.props;
|
||||
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');
|
||||
|
||||
if (hasOverallCoverage && hasUTCoverage && hasITCoverage) {
|
||||
return 'overall_';
|
||||
} else if (hasITCoverage) {
|
||||
return 'it_';
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
getCoverage (prefix) {
|
||||
const { measures } = this.props;
|
||||
const { value } = measures
|
||||
.find(measure => measure.metric.key === `${prefix}coverage`);
|
||||
const { value } = measures.find(measure => measure.metric.key === 'coverage');
|
||||
return Number(value);
|
||||
}
|
||||
|
||||
getNewCoverageMeasure (prefix) {
|
||||
getNewCoverageMeasure () {
|
||||
const { measures } = this.props;
|
||||
return measures
|
||||
.find(measure => measure.metric.key === `new_${prefix}coverage`);
|
||||
return measures.find(measure => measure.metric.key === 'new_coverage');
|
||||
}
|
||||
|
||||
getNewLinesToCover (prefix) {
|
||||
getNewLinesToCover () {
|
||||
const { measures } = this.props;
|
||||
return measures
|
||||
.find(measure => measure.metric.key === `new_${prefix}lines_to_cover`);
|
||||
return measures.find(measure => measure.metric.key === 'new_lines_to_cover');
|
||||
}
|
||||
|
||||
renderHeader () {
|
||||
@ -69,9 +48,8 @@ class Coverage extends React.Component {
|
||||
translate('metric.coverage.name'));
|
||||
}
|
||||
|
||||
renderTimeline (coverageMetricPrefix, range) {
|
||||
const metricKey = `${coverageMetricPrefix}coverage`;
|
||||
return this.props.renderTimeline(metricKey, range);
|
||||
renderTimeline (range) {
|
||||
return this.props.renderTimeline('coverage', range);
|
||||
}
|
||||
|
||||
renderTests () {
|
||||
@ -86,10 +64,10 @@ class Coverage extends React.Component {
|
||||
return this.props.renderDonut(data);
|
||||
}
|
||||
|
||||
renderCoverage (coverageMetricPrefix) {
|
||||
renderCoverage () {
|
||||
const { component } = this.props;
|
||||
const metric = `${coverageMetricPrefix}coverage`;
|
||||
const coverage = this.getCoverage(coverageMetricPrefix);
|
||||
const metric = 'coverage';
|
||||
const coverage = this.getCoverage();
|
||||
|
||||
return (
|
||||
<div className="overview-domain-measure">
|
||||
@ -112,10 +90,10 @@ class Coverage extends React.Component {
|
||||
);
|
||||
}
|
||||
|
||||
renderNewCoverage (coverageMetricPrefix) {
|
||||
renderNewCoverage () {
|
||||
const { component, leakPeriod } = this.props;
|
||||
const newCoverageMeasure = this.getNewCoverageMeasure(coverageMetricPrefix);
|
||||
const newLinesToCover = this.getNewLinesToCover(coverageMetricPrefix);
|
||||
const newCoverageMeasure = this.getNewCoverageMeasure();
|
||||
const newLinesToCover = this.getNewLinesToCover();
|
||||
|
||||
const newCoverageValue = newCoverageMeasure ?
|
||||
getPeriodValue(newCoverageMeasure, leakPeriod.index) : null;
|
||||
@ -168,20 +146,20 @@ class Coverage extends React.Component {
|
||||
);
|
||||
}
|
||||
|
||||
renderNutshell (coverageMetricPrefix) {
|
||||
renderNutshell () {
|
||||
return (
|
||||
<div className="overview-domain-nutshell">
|
||||
<div className="overview-domain-measures">
|
||||
{this.renderCoverage(coverageMetricPrefix)}
|
||||
{this.renderCoverage()}
|
||||
{this.renderTests()}
|
||||
</div>
|
||||
|
||||
{this.renderTimeline(coverageMetricPrefix, 'before')}
|
||||
{this.renderTimeline('before')}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
renderLeak (coverageMetricPrefix) {
|
||||
renderLeak () {
|
||||
const { leakPeriod } = this.props;
|
||||
|
||||
if (leakPeriod == null) {
|
||||
@ -191,19 +169,17 @@ class Coverage extends React.Component {
|
||||
return (
|
||||
<div className="overview-domain-leak">
|
||||
<div className="overview-domain-measures">
|
||||
{this.renderNewCoverage(coverageMetricPrefix)}
|
||||
{this.renderNewCoverage()}
|
||||
</div>
|
||||
|
||||
{this.renderTimeline(coverageMetricPrefix, 'after')}
|
||||
{this.renderTimeline('after')}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
render () {
|
||||
const { measures } = this.props;
|
||||
const coverageMetricPrefix = this.getCoverageMetricPrefix();
|
||||
const coverageMeasure =
|
||||
measures.find(measure => measure.metric.key === `${coverageMetricPrefix}coverage`);
|
||||
const coverageMeasure = measures.find(measure => measure.metric.key === 'coverage');
|
||||
|
||||
if (coverageMeasure == null) {
|
||||
return null;
|
||||
@ -214,8 +190,8 @@ class Coverage extends React.Component {
|
||||
{this.renderHeader()}
|
||||
|
||||
<div className="overview-domain-panel">
|
||||
{this.renderNutshell(coverageMetricPrefix)}
|
||||
{this.renderLeak(coverageMetricPrefix)}
|
||||
{this.renderNutshell()}
|
||||
{this.renderLeak()}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
@ -184,29 +184,15 @@ export default Marionette.LayoutView.extend({
|
||||
return { from: 1, to: this.LINES_AROUND };
|
||||
},
|
||||
|
||||
getUTCoverageStatus (row) {
|
||||
getCoverageStatus (row) {
|
||||
let status = null;
|
||||
if (row.utLineHits > 0) {
|
||||
if (row.lineHits > 0) {
|
||||
status = 'partially-covered';
|
||||
}
|
||||
if (row.utLineHits > 0 && row.utConditions === row.utCoveredConditions) {
|
||||
if (row.lineHits > 0 && row.conditions === row.coveredConditions) {
|
||||
status = 'covered';
|
||||
}
|
||||
if (row.utLineHits === 0 || row.utCoveredConditions === 0) {
|
||||
status = 'uncovered';
|
||||
}
|
||||
return status;
|
||||
},
|
||||
|
||||
getItCoverageStatus (row) {
|
||||
let status = null;
|
||||
if (row.itLineHits > 0) {
|
||||
status = 'partially-covered';
|
||||
}
|
||||
if (row.itLineHits > 0 && row.itConditions === row.itCoveredConditions) {
|
||||
status = 'covered';
|
||||
}
|
||||
if (row.itLineHits === 0 || row.itCoveredConditions === 0) {
|
||||
if (row.lineHits === 0 || row.coveredConditions === 0) {
|
||||
status = 'uncovered';
|
||||
}
|
||||
return status;
|
||||
@ -230,16 +216,14 @@ export default Marionette.LayoutView.extend({
|
||||
}
|
||||
source = source.map(function (row) {
|
||||
return _.extend(row, {
|
||||
utCoverageStatus: that.getUTCoverageStatus(row),
|
||||
itCoverageStatus: that.getItCoverageStatus(row)
|
||||
coverageStatus: that.getCoverageStatus(row),
|
||||
});
|
||||
});
|
||||
const firstLine = _.first(source).line;
|
||||
const linesRequested = data.to - data.from + 1;
|
||||
that.model.set({
|
||||
source,
|
||||
hasUTCoverage: that.model.hasUTCoverage(source),
|
||||
hasITCoverage: that.model.hasITCoverage(source),
|
||||
hasCoverage: that.model.hasCoverage(source),
|
||||
hasSourceBefore: firstLine > 1,
|
||||
hasSourceAfter: data.sources.length === linesRequested
|
||||
});
|
||||
@ -445,7 +429,6 @@ export default Marionette.LayoutView.extend({
|
||||
const popup = new CoveragePopupView({
|
||||
row,
|
||||
collection: new Backbone.Collection(data.tests),
|
||||
tests: $(e.currentTarget).data('tests'),
|
||||
triggerEl: $(e.currentTarget)
|
||||
});
|
||||
popup.render();
|
||||
@ -634,14 +617,12 @@ export default Marionette.LayoutView.extend({
|
||||
}
|
||||
source = source.map(function (row) {
|
||||
return _.extend(row, {
|
||||
utCoverageStatus: that.getUTCoverageStatus(row),
|
||||
itCoverageStatus: that.getItCoverageStatus(row)
|
||||
coverageStatus: that.getCoverageStatus(row)
|
||||
});
|
||||
});
|
||||
that.model.set({
|
||||
source,
|
||||
hasUTCoverage: that.model.hasUTCoverage(source),
|
||||
hasITCoverage: that.model.hasITCoverage(source),
|
||||
hasCoverage: that.model.hasCoverage(source),
|
||||
hasSourceBefore: (data.sources.length === that.LINES_AROUND) && (_.first(source).line > 0)
|
||||
});
|
||||
that.addIssuesPerLineMeta(that.issues);
|
||||
@ -680,14 +661,12 @@ export default Marionette.LayoutView.extend({
|
||||
}
|
||||
source = source.map(function (row) {
|
||||
return _.extend(row, {
|
||||
utCoverageStatus: that.getUTCoverageStatus(row),
|
||||
itCoverageStatus: that.getItCoverageStatus(row)
|
||||
coverageStatus: that.getCoverageStatus(row)
|
||||
});
|
||||
});
|
||||
that.model.set({
|
||||
source,
|
||||
hasUTCoverage: that.model.hasUTCoverage(source),
|
||||
hasITCoverage: that.model.hasITCoverage(source),
|
||||
hasCoverage: that.model.hasCoverage(source),
|
||||
hasSourceAfter: data.sources.length === that.LINES_AROUND
|
||||
});
|
||||
that.addIssuesPerLineMeta(that.issues);
|
||||
|
@ -131,12 +131,6 @@ export default ModalView.extend({
|
||||
if (measures.conditions_to_cover && measures.uncovered_conditions) {
|
||||
measures.covered_conditions = measures.conditions_to_cover - measures.uncovered_conditions;
|
||||
}
|
||||
if (measures.it_lines_to_cover && measures.it_uncovered_lines) {
|
||||
measures.it_covered_lines = measures.it_lines_to_cover - measures.it_uncovered_lines;
|
||||
}
|
||||
if (measures.it_conditions_to_cover && measures.it_uncovered_conditions) {
|
||||
measures.it_covered_conditions = measures.it_conditions_to_cover - measures.it_uncovered_conditions;
|
||||
}
|
||||
return measures;
|
||||
},
|
||||
|
||||
|
@ -54,16 +54,7 @@ export default Popup.extend({
|
||||
tests: testSet
|
||||
};
|
||||
});
|
||||
_.extend(row, {
|
||||
lineHits: row[this.options.tests + 'LineHits'],
|
||||
conditions: row[this.options.tests + 'Conditions'],
|
||||
coveredConditions: row[this.options.tests + 'CoveredConditions']
|
||||
});
|
||||
return {
|
||||
testFiles,
|
||||
row,
|
||||
tests: this.options.tests
|
||||
};
|
||||
return { testFiles, row };
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -29,7 +29,6 @@ export default Backbone.Model.extend({
|
||||
|
||||
hasSource: false,
|
||||
hasCoverage: false,
|
||||
hasITCoverage: false,
|
||||
hasDuplications: false,
|
||||
hasSCM: false,
|
||||
|
||||
@ -94,15 +93,9 @@ export default Backbone.Model.extend({
|
||||
this.set({ hasDuplications });
|
||||
},
|
||||
|
||||
hasUTCoverage (source) {
|
||||
hasCoverage (source) {
|
||||
return _.some(source, function (line) {
|
||||
return line.utCoverageStatus != null;
|
||||
});
|
||||
},
|
||||
|
||||
hasITCoverage (source) {
|
||||
return _.some(source, function (line) {
|
||||
return line.itCoverageStatus != null;
|
||||
return line.coverageStatus != null;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@ -1,15 +1,15 @@
|
||||
{{#any measures.coverage measures.it_coverage}}
|
||||
{{#if measures.coverage}}
|
||||
<div class="measures">
|
||||
<div class="measures-chart">
|
||||
<span class="js-pie-chart"
|
||||
data-value="{{default measures.overall_coverage_raw measures.coverage_raw measures.it_coverage_raw}}"
|
||||
data-value="{{measures.coverage_raw}}"
|
||||
data-max="100"
|
||||
data-color="#85bb43"
|
||||
data-base-color="#d4333f"
|
||||
data-size="47"></span>
|
||||
</div>
|
||||
<div class="measure measure-big" data-metric="coverage">
|
||||
<span class="measure-value">{{default measures.overall_coverage measures.coverage measures.it_coverage}}</span>
|
||||
<span class="measure-value">{{measures.coverage}}</span>
|
||||
<span class="measure-name">{{t 'metric.coverage.name'}}</span>
|
||||
</div>
|
||||
</div>
|
||||
@ -18,7 +18,7 @@
|
||||
<div class="measures">
|
||||
<div class="measures-list">
|
||||
<div class="measure measure-one-line">
|
||||
<span class="measure-name">Covered by Unit Tests</span>
|
||||
<span class="measure-name">Covered by Tests</span>
|
||||
</div>
|
||||
<div class="measure measure-one-line" data-metric="lines_to_cover">
|
||||
<span class="measure-name">Lines</span>
|
||||
@ -33,24 +33,4 @@
|
||||
</div>
|
||||
</div>
|
||||
{{/any}}
|
||||
|
||||
{{#any measures.it_covered_lines measures.it_lines_to_cover measures.it_covered_conditions measures.it_conditions_to_cover}}
|
||||
<div class="measures">
|
||||
<div class="measures-list">
|
||||
<div class="measure measure-one-line">
|
||||
<span class="measure-name">Covered by Integration Tests</span>
|
||||
</div>
|
||||
<div class="measure measure-one-line" data-metric="it_lines_to_cover">
|
||||
<span class="measure-name">Lines</span>
|
||||
<span class="measure-value">{{measures.it_uncovered_lines}}/{{measures.it_lines_to_cover}}</span>
|
||||
</div>
|
||||
{{#if measures.it_conditions_to_cover}}
|
||||
<div class="measure measure-one-line" data-metric="it_conditions_to_cover">
|
||||
<span class="measure-name">Conditions</span>
|
||||
<span class="measure-value">{{default measures.it_uncovered_conditions 0}}/{{measures.it_conditions_to_cover}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{/any}}
|
||||
{{/any}}
|
||||
{{/if}}
|
||||
|
@ -1,12 +1,12 @@
|
||||
<div class="bubble-popup-container">
|
||||
<div class="bubble-popup-title">
|
||||
{{#if row.lineHits}}
|
||||
{{t 'source_viewer' tests 'covered'}}
|
||||
{{t 'source_viewer.covered'}}
|
||||
{{#if row.conditions}}
|
||||
({{default row.coveredConditions 0}} of {{row.conditions}} {{t 'source_viewer.conditions'}})
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{t 'source_viewer' tests 'not_covered'}}
|
||||
{{t 'source_viewer.not_covered'}}
|
||||
{{#if row.conditions}}
|
||||
({{row.conditions}} {{t 'source_viewer.conditions'}})
|
||||
{{/if}}
|
||||
|
@ -31,13 +31,13 @@
|
||||
{{> 'measures/_source-viewer-measures-issues'}}
|
||||
</div>
|
||||
|
||||
{{#any measures.coverage measures.it_coverage}}
|
||||
{{#if measures.coverage}}
|
||||
<div class="source-viewer-measures-section">
|
||||
<div class="source-viewer-measures-card">
|
||||
{{> 'measures/_source-viewer-measures-coverage'}}
|
||||
</div>
|
||||
</div>
|
||||
{{/any}}
|
||||
{{/if}}
|
||||
|
||||
<div class="source-viewer-measures-section">
|
||||
{{> 'measures/_source-viewer-measures-duplications'}}
|
||||
|
@ -27,18 +27,9 @@
|
||||
{{/ifSCMChanged2}}
|
||||
</td>
|
||||
|
||||
{{#if ../hasUTCoverage}}
|
||||
<td class="source-meta source-line-coverage {{#notNull utCoverageStatus}}source-line-{{utCoverageStatus}}{{/notNull}}"
|
||||
data-tests="ut"
|
||||
data-line-number="{{line}}" {{#notNull utCoverageStatus}}title="{{t 'source_viewer.tooltip.ut' utCoverageStatus}}" data-placement="right" data-toggle="tooltip"{{/notNull}}>
|
||||
<div class="source-line-bar"></div>
|
||||
</td>
|
||||
{{/if}}
|
||||
|
||||
{{#if ../hasITCoverage}}
|
||||
<td class="source-meta source-line-coverage {{#notNull itCoverageStatus}}source-line-{{itCoverageStatus}}{{/notNull}}"
|
||||
data-tests="it"
|
||||
data-line-number="{{line}}" {{#notNull itCoverageStatus}}title="{{t 'source_viewer.tooltip.it' itCoverageStatus}}" data-placement="right" data-toggle="tooltip"{{/notNull}}>
|
||||
{{#if ../hasCoverage}}
|
||||
<td class="source-meta source-line-coverage {{#notNull coverageStatus}}source-line-{{coverageStatus}}{{/notNull}}"
|
||||
data-line-number="{{line}}" {{#notNull coverageStatus}}title="{{t 'source_viewer.tooltip' coverageStatus}}" data-placement="right" data-toggle="tooltip"{{/notNull}}>
|
||||
<div class="source-line-bar"></div>
|
||||
</td>
|
||||
{{/if}}
|
||||
|
@ -113,25 +113,6 @@ export function isDiffMetric (metricKey) {
|
||||
return metricKey.indexOf('new_') === 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check all types of coverage and return most suitable one
|
||||
* @param {Array} measures
|
||||
* @returns {string}
|
||||
*/
|
||||
export function selectCoverageMetric (measures) {
|
||||
const hasOverallCoverage = !!measures.find(measure => measure.metric === 'overall_coverage');
|
||||
const hasUTCoverage = !!measures.find(measure => measure.metric === 'coverage');
|
||||
const hasITCoverage = !!measures.find(measure => measure.metric === 'it_coverage');
|
||||
|
||||
if (hasOverallCoverage && hasUTCoverage && hasITCoverage) {
|
||||
return 'overall_';
|
||||
} else if (hasITCoverage) {
|
||||
return 'it_';
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Helpers
|
||||
*/
|
||||
|
@ -2908,20 +2908,15 @@ component_viewer.workspace.tooltip=Keeps track of history of navigation
|
||||
component_viewer.workspace.show_workspace=Show workspace
|
||||
component_viewer.workspace.hide_workspace=Hide workspace
|
||||
|
||||
source_viewer.ut.covered=Covered by tests
|
||||
source_viewer.ut.not_covered=Not covered by tests
|
||||
source_viewer.it.covered=Covered by integration tests
|
||||
source_viewer.it.not_covered=Not covered by integration tests
|
||||
source_viewer.covered=Covered by tests
|
||||
source_viewer.not_covered=Not covered by tests
|
||||
source_viewer.conditions=conditions
|
||||
|
||||
source_viewer.tooltip.duplicated_line=This line is duplicated. Click to see duplicated blocks.
|
||||
source_viewer.tooltip.duplicated_block=Duplicated block. Click for details.
|
||||
source_viewer.tooltip.ut.covered=Fully covered by tests. Click for details.
|
||||
source_viewer.tooltip.ut.partially-covered=Partially covered by tests. Click for details.
|
||||
source_viewer.tooltip.ut.uncovered=Not covered by tests.
|
||||
source_viewer.tooltip.it.covered=Fully covered by integration tests. Click for details.
|
||||
source_viewer.tooltip.it.partially-covered=Partially covered by integration tests. Click for details.
|
||||
source_viewer.tooltip.it.uncovered=Not covered by integration tests.
|
||||
source_viewer.tooltip.covered=Fully covered by tests. Click for details.
|
||||
source_viewer.tooltip.partially-covered=Partially covered by tests. Click for details.
|
||||
source_viewer.tooltip.uncovered=Not covered by tests.
|
||||
source_viewer.tooltip.new_code=New {0}.
|
||||
|
||||
source_viewer.load_more_code=Load More Code
|
||||
|
Loading…
Reference in New Issue
Block a user