]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-21218 Split QualityGate test to reduce runtime
authorAmbroise C <ambroise.christea@sonarsource.com>
Wed, 29 May 2024 13:46:44 +0000 (15:46 +0200)
committersonartech <sonartech@sonarsource.com>
Thu, 30 May 2024 20:02:37 +0000 (20:02 +0000)
server/sonar-web/src/main/js/apps/quality-gates/components/__tests__/QualityGate-it.tsx

index 2c5e6a5e0d924f5062c70f6c010095bf7dfcbdfb..31b58311c5df5fc4df619595244a96e488d599ed 100644 (file)
@@ -199,7 +199,7 @@ it('should be able to set as default a quality gate which is CaYC compliant', as
   expect(await screen.findByRole('button', { name: /Sonar way default/ })).toBeInTheDocument();
 });
 
-it('should be able to add a condition', async () => {
+it('should be able to add a condition on new code', async () => {
   const user = userEvent.setup();
   qualityGateHandler.setIsAdmin(true);
   renderQualityGateApp();
@@ -222,10 +222,20 @@ it('should be able to add a condition', async () => {
   const newConditions = byTestId('quality-gates__conditions-new');
   expect(await newConditions.byRole('cell', { name: 'Issues' }).find()).toBeInTheDocument();
   expect(await newConditions.byRole('cell', { name: '12' }).find()).toBeInTheDocument();
+});
+
+it('should be able to add a condition on overall code', async () => {
+  const user = userEvent.setup();
+  qualityGateHandler.setIsAdmin(true);
+  renderQualityGateApp();
+
+  await user.click(await screen.findByText('SonarSource way - CFamily'));
 
   // On overall code
   await user.click(await screen.findByText('quality_gates.add_condition'));
 
+  const dialog = byRole('dialog');
+
   await selectEvent.select(dialog.byRole('combobox').get(), ['Info Issues']);
   await user.click(dialog.byRole('radio', { name: 'quality_gates.conditions.overall_code' }).get());
   await user.click(dialog.byLabelText('quality_gates.conditions.operator').get());
@@ -241,16 +251,28 @@ it('should be able to add a condition', async () => {
     await overallConditions.byRole('cell', { name: 'Info Issues' }).find(),
   ).toBeInTheDocument();
   expect(await overallConditions.byRole('cell', { name: '42' }).find()).toBeInTheDocument();
+});
+
+it('should be able to select a rating', async () => {
+  const user = userEvent.setup();
+  qualityGateHandler.setIsAdmin(true);
+  renderQualityGateApp();
+
+  await user.click(await screen.findByText('SonarSource way - CFamily'));
 
   // Select a rating
   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.select(dialog.byRole('combobox').get(), ['Maintainability Rating']);
   await user.click(dialog.byLabelText('quality_gates.conditions.value').get());
   await user.click(dialog.byText('B').get());
   await user.click(dialog.byRole('button', { name: 'quality_gates.add_condition' }).get());
 
+  const overallConditions = byTestId('quality-gates__conditions-overall');
+
   expect(
     await overallConditions.byRole('cell', { name: 'Maintainability Rating' }).find(),
   ).toBeInTheDocument();