From 003ccb8b04fad9f4205707e84257a279eed91e42 Mon Sep 17 00:00:00 2001 From: Viktor Vorona Date: Thu, 30 May 2024 17:07:00 +0200 Subject: [PATCH] SONAR-22224 Hide Issues from prioritized rules condition if no feature --- .../quality-gates/components/Conditions.tsx | 6 +++++- .../components/__tests__/QualityGate-it.tsx | 20 ++++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/Conditions.tsx b/server/sonar-web/src/main/js/apps/quality-gates/components/Conditions.tsx index dfc691dc57a..fa10bd4300d 100644 --- a/server/sonar-web/src/main/js/apps/quality-gates/components/Conditions.tsx +++ b/server/sonar-web/src/main/js/apps/quality-gates/components/Conditions.tsx @@ -109,7 +109,11 @@ export default function Conditions({ qualityGate, isFetching }: Readonly) (metric) => !metric.hidden && !FORBIDDEN_METRIC_TYPES.includes(metric.type) && - !FORBIDDEN_METRICS.includes(metric.key), + !FORBIDDEN_METRICS.includes(metric.key) && + !( + metric.key === MetricKey.prioritized_rule_issues && + !hasFeature(Feature.PrioritizedRules) + ), ), conditions, (metric, condition) => metric.key === condition.metric, diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/__tests__/QualityGate-it.tsx b/server/sonar-web/src/main/js/apps/quality-gates/components/__tests__/QualityGate-it.tsx index d3230d5eb5b..f7552d13c32 100644 --- a/server/sonar-web/src/main/js/apps/quality-gates/components/__tests__/QualityGate-it.tsx +++ b/server/sonar-web/src/main/js/apps/quality-gates/components/__tests__/QualityGate-it.tsx @@ -559,7 +559,7 @@ it('should not display CaYC condition simplification tour for users who dismisse it('should not allow to change value of prioritized_rule_issues', async () => { const user = userEvent.setup(); qualityGateHandler.setIsAdmin(true); - renderQualityGateApp(); + renderQualityGateApp({ featureList: [Feature.PrioritizedRules] }); await user.click(await screen.findByText('SonarSource way - CFamily')); @@ -591,6 +591,24 @@ it('should not allow to change value of prioritized_rule_issues', async () => { ).toBeInTheDocument(); }); +it('should not allow to add prioritized_rule_issues condition if feature is not enabled', async () => { + const user = userEvent.setup(); + qualityGateHandler.setIsAdmin(true); + renderQualityGateApp(); + + await user.click(await screen.findByText('SonarSource way - CFamily')); + + await user.click(await screen.findByText('quality_gates.add_condition')); + + const dialog = byRole('dialog'); + + await user.click(dialog.byRole('radio', { name: 'quality_gates.conditions.overall_code' }).get()); + await selectEvent.openMenu(dialog.byRole('combobox').get()); + expect( + byRole('option', { name: 'Issues from prioritized rules' }).query(), + ).not.toBeInTheDocument(); +}); + describe('The Project section', () => { it('should render list of projects correctly in different tabs', async () => { const user = userEvent.setup(); -- 2.39.5