Преглед изворни кода

[e2e]TopicTests.copyTopic : Copy topic (#3165)

* [e2e]TopicTests.copyTopic : Copy topic

* [e2e]TopicTests.copyTopic : Copy topic

* [e2e]TopicTests.copyTopic : Copy topic

* [e2e]First fix.TopicTests.copyTopic : Copy topic

Co-authored-by: Vlad Senyuta <66071557+VladSenyuta@users.noreply.github.com>
Arthur пре 2 година
родитељ
комит
87ffb4716a

+ 9 - 2
kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/topic/TopicsList.java

@@ -70,6 +70,12 @@ public class TopicsList extends BasePage {
           .collect(Collectors.toList());
     }
 
+    @Step
+    public TopicsList clickCopySelectedTopicBtn(){
+      copySelectedTopicBtn.shouldBe(Condition.enabled).click();
+      return this;
+    }
+
     private List<SelenideElement> getVisibleColumnHeaders() {
       return Stream.of("Replication Factor","Number of messages","Topic Name", "Partitions", "Out of sync replicas", "Size")
           .map(name -> $x(String.format(columnHeaderLocator, name)))
@@ -134,8 +140,9 @@ public class TopicsList extends BasePage {
       }
 
       @Step
-      public void selectItem(boolean select) {
-        selectElement(element.$x("./td[1]/input"), select);
+      public TopicsList selectItem(boolean select) {
+         selectElement(element.$x("./td[1]/input"), select);
+         return new TopicsList();
       }
 
       @Step

+ 1 - 1
kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/base/BaseTest.java

@@ -34,7 +34,7 @@ import org.testcontainers.utility.DockerImageName;
 
 @Slf4j
 @DisplayNameGeneration(DisplayNameGenerator.class)
-public class BaseTest extends Facade {
+public abstract class BaseTest extends Facade {
 
   private static final String SELENIUM_IMAGE_NAME = "selenium/standalone-chrome:103.0";
   private static final String SELENIARM_STANDALONE_CHROMIUM = "seleniarm/standalone-chromium:103.0";

+ 32 - 0
kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/suite/topics/TopicsTests.java

@@ -471,6 +471,38 @@ public class TopicsTests extends BaseTest {
         .as("isAlertWithMessageVisible()").isTrue();
   }
 
+  @DisplayName("TopicTests.copyTopic : Copy topic")
+  @Suite(suiteId = SUITE_ID, title = SUITE_TITLE)
+  @AutomationStatus(status = Status.AUTOMATED)
+  @CaseId(8)
+  @Test
+  void checkCopyTopicPossibility(){
+    Topic topicToCopy = new Topic()
+        .setName("topic-to-copy-" + randomAlphabetic(5))
+        .setNumberOfPartitions(1);
+    navigateToTopics();
+    topicsList
+        .getTopicItem("_schemas")
+        .selectItem(true)
+        .clickCopySelectedTopicBtn();
+    topicCreateEditForm
+        .waitUntilScreenReady();
+    assertThat(topicCreateEditForm.isCreateTopicButtonEnabled()).as("isCreateTopicButtonEnabled()").isFalse();
+    topicCreateEditForm
+        .setTopicName(topicToCopy.getName())
+        .setNumberOfPartitions(topicToCopy.getNumberOfPartitions())
+        .clickCreateTopicBtn();
+    topicDetails
+        .waitUntilScreenReady();
+    TOPIC_LIST.add(topicToCopy);
+    SoftAssertions softly = new SoftAssertions();
+    softly.assertThat(topicDetails.isAlertWithMessageVisible(SUCCESS, "Topic successfully created."))
+        .as("isAlertWithMessageVisible()").isTrue();
+    softly.assertThat(topicDetails.isTopicHeaderVisible(topicToCopy.getName()))
+        .as("isTopicHeaderVisible()").isTrue();
+    softly.assertAll();
+  }
+
   @AfterAll
   public void afterAll() {
     TOPIC_LIST.forEach(topic -> apiService.deleteTopic(CLUSTER_NAME, topic.getName()));