]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-22224 Hide Issues from prioritized rules condition if no feature
authorViktor Vorona <viktor.vorona@sonarsource.com>
Thu, 30 May 2024 15:07:00 +0000 (17:07 +0200)
committersonartech <sonartech@sonarsource.com>
Mon, 3 Jun 2024 20:02:58 +0000 (20:02 +0000)
server/sonar-web/src/main/js/apps/quality-gates/components/Conditions.tsx
server/sonar-web/src/main/js/apps/quality-gates/components/__tests__/QualityGate-it.tsx

index dfc691dc57a3fee530e37472031343a2ff00e02f..fa10bd4300d90de20bd641df2c217a5aaf85a20d 100644 (file)
@@ -109,7 +109,11 @@ export default function Conditions({ qualityGate, isFetching }: Readonly<Props>)
           (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,
index d3230d5eb5b7689fc0550e0b75b7d0a82e12ec62..f7552d13c32047d267e43117556432fad146d3ca 100644 (file)
@@ -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();