aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main/js/apps
diff options
context:
space:
mode:
authorstanislavh <stanislav.honcharov@sonarsource.com>2023-11-27 15:34:49 +0100
committersonartech <sonartech@sonarsource.com>2023-11-28 20:02:43 +0000
commitc98acfe402fb765f268f4338d261450cf1f6f83b (patch)
tree6af459979e3d22a9f66e36a99e47e01b518e189b /server/sonar-web/src/main/js/apps
parent912346cfbdb0333352e4bb0ada86dadcb275c85d (diff)
downloadsonarqube-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')
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/__tests__/ComponentMeasures-it.tsx8
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/__tests__/utils-test.ts2
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/ComponentMeasuresApp.tsx6
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/utils.ts15
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityApp.tsx4
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/utils.ts4
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']),