]> source.dussan.org Git - sonarqube.git/commitdiff
Fix Quality Gate create form
authorGrégoire Aubert <gregoire.aubert@sonarsource.com>
Wed, 4 Apr 2018 10:18:22 +0000 (12:18 +0200)
committerSonarTech <sonartech@sonarsource.com>
Wed, 4 Apr 2018 18:28:01 +0000 (20:28 +0200)
server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/QualityGatePage.java
server/sonar-web/src/main/js/apps/quality-gates/components/CreateQualityGateForm.tsx
tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateUiTest.java

index 480b4bdb35790ddd4362f4a58446c19604802137..94e73a0451c0be169fb7ea608a70b0d9368d628f 100644 (file)
  */
 package org.sonarqube.qa.util.pageobjects;
 
-import com.codeborne.selenide.Condition;
-import com.codeborne.selenide.Selenide;
+import static com.codeborne.selenide.Condition.exist;
+import static com.codeborne.selenide.Condition.text;
+import static com.codeborne.selenide.Condition.visible;
+import static com.codeborne.selenide.Selenide.$;
+import static com.codeborne.selenide.Selenide.$$;
 
 public class QualityGatePage {
   public QualityGatePage() {
-    Selenide.$("#quality-gates-page").shouldBe(Condition.visible);
+    $("#quality-gates-page").shouldBe(visible);
   }
 
   public QualityGatePage countQualityGates(Integer count) {
-    Selenide.$$("#quality-gates-page .list-group-item").shouldHaveSize(count);
+    $$("#quality-gates-page .list-group-item").shouldHaveSize(count);
     return this;
   }
 
   public QualityGatePage canCreateQG() {
-    Selenide.$("#quality-gate-add").should(Condition.exist).shouldBe(Condition.visible);
+    $("#quality-gate-add").should(exist).shouldBe(visible);
+    return this;
+  }
+
+  public QualityGatePage createQG(String name) {
+    $("#quality-gate-add").click();
+    $(".modal-head").should(exist).shouldHave(text("Create Quality Gate"));
+    $("#quality-gate-form-name").sendKeys(name);
+    $(".js-confirm").click();
     return this;
   }
 
   public QualityGatePage canNotCreateQG() {
-    Selenide.$("#quality-gate-add").shouldNot(Condition.exist);
+    $("#quality-gate-add").shouldNot(exist);
     return this;
   }
 
   public QualityGatePage displayIntro() {
-    Selenide.$(".search-navigator-intro").should(Condition.exist).shouldBe(Condition.visible);
+    $(".search-navigator-intro").should(exist).shouldBe(visible);
     return this;
   }
 
   public QualityGatePage displayQualityGateDetail(String qualityGateName) {
-    Selenide.$(".layout-page-main-header").shouldHave(Condition.text(qualityGateName));
+    $(".layout-page-main-header").shouldHave(text(qualityGateName));
     return this;
   }
 }
index f34aad8bfb92ede5d02e471446ad8d87738d820b..6a0ca705301f0fc70dc59fcb169b0b0437813f18 100644 (file)
@@ -21,7 +21,7 @@ import * as React from 'react';
 import * as PropTypes from 'prop-types';
 import { createQualityGate, QualityGate } from '../../../api/quality-gates';
 import Modal from '../../../components/controls/Modal';
-import { Button, ResetButtonLink } from '../../../components/ui/buttons';
+import { SubmitButton, ResetButtonLink } from '../../../components/ui/buttons';
 import { translate } from '../../../helpers/l10n';
 import { getQualityGateUrl } from '../../../helpers/urls';
 
@@ -80,7 +80,7 @@ export default class CreateQualityGateForm extends React.PureComponent<Props, St
 
   render() {
     const { loading, name } = this.state;
-    const header = translate('quality_gates.rename');
+    const header = translate('quality_gates.create');
     const submitDisabled = loading || !name;
 
     return (
@@ -109,9 +109,9 @@ export default class CreateQualityGateForm extends React.PureComponent<Props, St
           </div>
           <div className="modal-foot">
             {loading && <i className="spinner spacer-right" />}
-            <Button className="js-confirm" disabled={submitDisabled}>
+            <SubmitButton className="js-confirm" disabled={submitDisabled}>
               {translate('save')}
-            </Button>
+            </SubmitButton>
             <ResetButtonLink className="js-modal-close" onClick={this.props.onClose}>
               {translate('cancel')}
             </ResetButtonLink>
index 14305de30a327216bccc72fbc2d0b2f121aa7bd6..95e2a177566d67c965980a21c9f9595a1361cdc5 100644 (file)
@@ -121,6 +121,18 @@ public class QualityGateUiTest {
       .displayIntro();
   }
 
+  @Test
+  public void create_quality_gate() {
+    String admin = tester.users().generateAdministrator().getLogin();
+    tester.openBrowser()
+      .logIn().submitCredentials(admin)
+      .openQualityGates()
+      .countQualityGates(1)
+      .canCreateQG()
+      .createQG("QG Create Test")
+      .countQualityGates(2);
+  }
+
   private void scanSampleWithDate(Project project, String date) {
     scanSample(project, date, null);
   }