diff options
author | stanislavh <stanislav.honcharov@sonarsource.com> | 2023-11-27 15:34:49 +0100 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2023-11-28 20:02:43 +0000 |
commit | c98acfe402fb765f268f4338d261450cf1f6f83b (patch) | |
tree | 6af459979e3d22a9f66e36a99e47e01b518e189b /server/sonar-web/src/main/js/apps | |
parent | 912346cfbdb0333352e4bb0ada86dadcb275c85d (diff) | |
download | sonarqube-c98acfe402fb765f268f4338d261450cf1f6f83b.tar.gz sonarqube-c98acfe402fb765f268f4338d261450cf1f6f83b.zip |
SONAR-21105 Do not show measures and activity for 'open' and 'reopened' issues metrics
Diffstat (limited to 'server/sonar-web/src/main/js/apps')
6 files changed, 19 insertions, 20 deletions
diff --git a/server/sonar-web/src/main/js/apps/component-measures/__tests__/ComponentMeasures-it.tsx b/server/sonar-web/src/main/js/apps/component-measures/__tests__/ComponentMeasures-it.tsx index 896a51c68d7..cc06b70332f 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/__tests__/ComponentMeasures-it.tsx +++ b/server/sonar-web/src/main/js/apps/component-measures/__tests__/ComponentMeasures-it.tsx @@ -140,6 +140,14 @@ describe('rendering', () => { expect(screen.getAllByText('Releasability rating').length).toBeGreaterThan(0); }); + it('should render issues measures when query by open_issues', async () => { + const { ui } = getPageObject(); + renderMeasuresApp('component_measures?id=foo&metric=open_issues'); + await ui.appLoaded(); + + expect(screen.getAllByText('Issues').length).toBeGreaterThan(1); + }); + it('should render correctly if there are no measures', async () => { componentsHandler.registerComponentMeasures({}); measuresHandler.registerComponentMeasures({}); diff --git a/server/sonar-web/src/main/js/apps/component-measures/__tests__/utils-test.ts b/server/sonar-web/src/main/js/apps/component-measures/__tests__/utils-test.ts index b74e7998c28..e8ed99ed114 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/__tests__/utils-test.ts +++ b/server/sonar-web/src/main/js/apps/component-measures/__tests__/utils-test.ts @@ -66,7 +66,7 @@ describe('filterMeasures', () => { it('should exclude banned measures', () => { expect( utils.filterMeasures([ - { metric: { id: '1', key: MetricKey.bugs, name: 'Bugs', type: 'INT' } }, + { metric: { id: '1', key: MetricKey.open_issues, name: 'Bugs', type: 'INT' } }, { metric: { id: '2', diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/ComponentMeasuresApp.tsx b/server/sonar-web/src/main/js/apps/component-measures/components/ComponentMeasuresApp.tsx index e07f41aa4fc..9054885817c 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/components/ComponentMeasuresApp.tsx +++ b/server/sonar-web/src/main/js/apps/component-measures/components/ComponentMeasuresApp.tsx @@ -51,6 +51,7 @@ import '../style.css'; import { Query, banQualityGateMeasure, + filterMeasures, getMeasuresPageMetricKeys, groupByDomains, hasBubbleChart, @@ -144,10 +145,9 @@ class ComponentMeasuresApp extends React.PureComponent<Props, State> { getMeasuresWithPeriod(componentKey, filteredKeys, getBranchLikeQuery(branchLike)).then( ({ component, period }) => { if (this.mounted) { - const measures = banQualityGateMeasure(component).map((measure) => - enhanceMeasure(measure, metrics), + const measures = filterMeasures( + banQualityGateMeasure(component).map((measure) => enhanceMeasure(measure, metrics)), ); - const leakPeriod = component.qualifier === ComponentQualifier.Project ? period : undefined; diff --git a/server/sonar-web/src/main/js/apps/component-measures/utils.ts b/server/sonar-web/src/main/js/apps/component-measures/utils.ts index ca845e698b2..86e3c7b91cb 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/utils.ts +++ b/server/sonar-web/src/main/js/apps/component-measures/utils.ts @@ -20,6 +20,7 @@ import { groupBy, memoize, sortBy, toPairs } from 'lodash'; import { enhanceMeasure } from '../../components/measure/utils'; import { isBranch, isPullRequest } from '../../helpers/branch-like'; +import { HIDDEN_METRICS } from '../../helpers/constants'; import { getLocalizedMetricName } from '../../helpers/l10n'; import { MEASURES_REDIRECTION, getDisplayMetrics, isDiffMetric } from '../../helpers/measures'; import { @@ -59,21 +60,9 @@ export const KNOWN_DOMAINS = [ 'Size', 'Complexity', ]; -const BANNED_MEASURES = [ - MetricKey.blocker_violations, - MetricKey.new_blocker_violations, - MetricKey.critical_violations, - MetricKey.new_critical_violations, - MetricKey.major_violations, - MetricKey.new_major_violations, - MetricKey.minor_violations, - MetricKey.new_minor_violations, - MetricKey.info_violations, - MetricKey.new_info_violations, -]; export function filterMeasures(measures: MeasureEnhanced[]): MeasureEnhanced[] { - return measures.filter((measure) => !BANNED_MEASURES.includes(measure.metric.key as MetricKey)); + return measures.filter((measure) => !HIDDEN_METRICS.includes(measure.metric.key as MetricKey)); } export function sortMeasures( diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityApp.tsx b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityApp.tsx index c9a199e4b27..8a93f70b458 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityApp.tsx +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityApp.tsx @@ -39,6 +39,7 @@ import { } from '../../../components/activity-graph/utils'; import { Location, Router, withRouter } from '../../../components/hoc/withRouter'; import { getBranchLikeQuery } from '../../../helpers/branch-like'; +import { HIDDEN_METRICS } from '../../../helpers/constants'; import { parseDate } from '../../../helpers/dates'; import { serializeStringArray } from '../../../helpers/query'; import { withBranchLikes } from '../../../queries/branch'; @@ -290,7 +291,8 @@ class ProjectActivityApp extends React.PureComponent<Props, State> { } return Object.values(metrics).filter( - (metric) => metric.key !== MetricKey.security_review_rating, + (metric) => + ![...HIDDEN_METRICS, MetricKey.security_review_rating].includes(metric.key as MetricKey), ); }; diff --git a/server/sonar-web/src/main/js/apps/projectActivity/utils.ts b/server/sonar-web/src/main/js/apps/projectActivity/utils.ts index 593bed6b881..e6c3e0911cf 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/utils.ts +++ b/server/sonar-web/src/main/js/apps/projectActivity/utils.ts @@ -18,7 +18,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ import { startOfDay } from 'date-fns'; -import { isEqual } from 'lodash'; +import { isEqual, uniq } from 'lodash'; import { DEFAULT_GRAPH } from '../../components/activity-graph/utils'; import { parseDate } from '../../helpers/dates'; import { MEASURES_REDIRECTION } from '../../helpers/measures'; @@ -112,7 +112,7 @@ export function getAnalysesByVersionByDay( export function parseQuery(urlQuery: RawQuery): Query { const parsedMetrics = parseAsArray(urlQuery['custom_metrics'], parseAsString<MetricKey>); - const customMetrics = parsedMetrics.map((metric) => MEASURES_REDIRECTION[metric] ?? metric); + const customMetrics = uniq(parsedMetrics.map((metric) => MEASURES_REDIRECTION[metric] ?? metric)); return { category: parseAsString(urlQuery['category']), |