[e2e] TopicTests.redirectToConsumerFromTopicProfile : Redirect to consumer from topic profile (#2823)
* redirectToConsumerFromTopic init test created * test execution clarification * fix * test brushing up * test brushing up * test brushing up * test brushing up * test brushing up * test brushing up
This commit is contained in:
parent
99e50f8814
commit
77f789fa6c
5 changed files with 85 additions and 3 deletions
|
@ -0,0 +1,32 @@
|
||||||
|
package com.provectus.kafka.ui.pages.consumer;
|
||||||
|
|
||||||
|
import com.codeborne.selenide.Condition;
|
||||||
|
import com.codeborne.selenide.SelenideElement;
|
||||||
|
import io.qameta.allure.Step;
|
||||||
|
|
||||||
|
import static com.codeborne.selenide.Selenide.$x;
|
||||||
|
import static com.provectus.kafka.ui.utilities.WebUtils.isVisible;
|
||||||
|
|
||||||
|
public class ConsumersDetails {
|
||||||
|
|
||||||
|
protected SelenideElement loadingSpinner = $x("//*[contains(text(),'Loading')]");
|
||||||
|
protected SelenideElement topicGrid = $x("//table");
|
||||||
|
protected String consumerIdHeaderLocator = "//h1[contains(text(),'%s')]";
|
||||||
|
protected String topicElementLocator = "//tbody//td//a[text()='%s']";
|
||||||
|
@Step
|
||||||
|
public ConsumersDetails waitUntilScreenReady() {
|
||||||
|
loadingSpinner.shouldBe(Condition.disappear);
|
||||||
|
topicGrid.shouldBe(Condition.visible);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
@Step
|
||||||
|
public boolean isRedirectedConsumerTitleVisible(String consumerGroupId) {
|
||||||
|
return isVisible($x(String.format(consumerIdHeaderLocator, consumerGroupId)));
|
||||||
|
}
|
||||||
|
@Step
|
||||||
|
public boolean isTopicInConsumersDetailsVisible(String topicName) {
|
||||||
|
topicGrid.shouldBe(Condition.visible);
|
||||||
|
return isVisible($x(String.format(topicElementLocator, topicName)));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
package com.provectus.kafka.ui.pages.consumer;
|
||||||
|
|
||||||
|
import com.codeborne.selenide.SelenideElement;
|
||||||
|
import com.provectus.kafka.ui.utilities.WaitUtils;
|
||||||
|
import lombok.experimental.ExtensionMethod;
|
||||||
|
|
||||||
|
import static com.codeborne.selenide.Selenide.$x;
|
||||||
|
public class ConsumersList {
|
||||||
|
|
||||||
|
protected SelenideElement consumerListHeader = $x("//h1[text()='Consumers']");
|
||||||
|
}
|
|
@ -26,6 +26,7 @@ public class TopicDetails {
|
||||||
protected SelenideElement confirmBtn = $x("//div[@role='dialog']//button[contains(text(),'Confirm')]");
|
protected SelenideElement confirmBtn = $x("//div[@role='dialog']//button[contains(text(),'Confirm')]");
|
||||||
protected SelenideElement produceMessageBtn = $x("//div//button[text()='Produce Message']");
|
protected SelenideElement produceMessageBtn = $x("//div//button[text()='Produce Message']");
|
||||||
protected SelenideElement contentMessageTab = $x("//html//div[@id='root']/div/main//table//p");
|
protected SelenideElement contentMessageTab = $x("//html//div[@id='root']/div/main//table//p");
|
||||||
|
protected String consumerIdLocator = "//a[@title='%s']";
|
||||||
|
|
||||||
@Step
|
@Step
|
||||||
public TopicDetails waitUntilScreenReady() {
|
public TopicDetails waitUntilScreenReady() {
|
||||||
|
@ -74,6 +75,12 @@ public class TopicDetails {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Step
|
||||||
|
public TopicDetails openConsumerGroup(String consumerId) {
|
||||||
|
$x(String.format(consumerIdLocator, consumerId)).click();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
@Step
|
@Step
|
||||||
public boolean isKeyMessageVisible(String keyMessage) {
|
public boolean isKeyMessageVisible(String keyMessage) {
|
||||||
return keyMessage.equals($("td[title]").getText());
|
return keyMessage.equals($("td[title]").getText());
|
||||||
|
|
|
@ -5,6 +5,8 @@ import com.provectus.kafka.ui.pages.NaviSideBar;
|
||||||
import com.provectus.kafka.ui.pages.connector.ConnectorCreateForm;
|
import com.provectus.kafka.ui.pages.connector.ConnectorCreateForm;
|
||||||
import com.provectus.kafka.ui.pages.connector.ConnectorDetails;
|
import com.provectus.kafka.ui.pages.connector.ConnectorDetails;
|
||||||
import com.provectus.kafka.ui.pages.connector.KafkaConnectList;
|
import com.provectus.kafka.ui.pages.connector.KafkaConnectList;
|
||||||
|
import com.provectus.kafka.ui.pages.consumer.ConsumersDetails;
|
||||||
|
import com.provectus.kafka.ui.pages.consumer.ConsumersList;
|
||||||
import com.provectus.kafka.ui.pages.schema.SchemaCreateForm;
|
import com.provectus.kafka.ui.pages.schema.SchemaCreateForm;
|
||||||
import com.provectus.kafka.ui.pages.schema.SchemaDetails;
|
import com.provectus.kafka.ui.pages.schema.SchemaDetails;
|
||||||
import com.provectus.kafka.ui.pages.schema.SchemaRegistryList;
|
import com.provectus.kafka.ui.pages.schema.SchemaRegistryList;
|
||||||
|
@ -25,5 +27,7 @@ public abstract class Facade {
|
||||||
protected TopicCreateEditForm topicCreateEditForm = new TopicCreateEditForm();
|
protected TopicCreateEditForm topicCreateEditForm = new TopicCreateEditForm();
|
||||||
protected TopicsList topicsList = new TopicsList();
|
protected TopicsList topicsList = new TopicsList();
|
||||||
protected TopicDetails topicDetails = new TopicDetails();
|
protected TopicDetails topicDetails = new TopicDetails();
|
||||||
|
protected ConsumersDetails consumersDetails = new ConsumersDetails();
|
||||||
|
protected ConsumersList consumersList = new ConsumersList();
|
||||||
protected NaviSideBar naviSideBar = new NaviSideBar();
|
protected NaviSideBar naviSideBar = new NaviSideBar();
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,14 +15,15 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static com.provectus.kafka.ui.pages.NaviSideBar.SideMenuOption.TOPICS;
|
import static com.provectus.kafka.ui.pages.NaviSideBar.SideMenuOption.TOPICS;
|
||||||
import static com.provectus.kafka.ui.pages.topic.TopicDetails.DotPartitionIdMenu.CLEAR_MESSAGES;
|
|
||||||
import static com.provectus.kafka.ui.settings.Source.CLUSTER_NAME;
|
import static com.provectus.kafka.ui.settings.Source.CLUSTER_NAME;
|
||||||
import static com.provectus.kafka.ui.utilities.FileUtils.fileToString;
|
import static com.provectus.kafka.ui.utilities.FileUtils.fileToString;
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
||||||
public class TopicTests extends BaseTest {
|
public class TopicTests extends BaseTest {
|
||||||
private static final long SUITE_ID = 2;
|
private static final long SUITE_ID = 2;
|
||||||
private static final String SUITE_TITLE = "Topics";
|
private static final String SUITE_TITLE = "Topics";
|
||||||
|
|
||||||
private static final Topic TOPIC_FOR_UPDATE = new Topic()
|
private static final Topic TOPIC_FOR_UPDATE = new Topic()
|
||||||
.setName("topic-to-update")
|
.setName("topic-to-update")
|
||||||
.setCleanupPolicyValue("Compact")
|
.setCleanupPolicyValue("Compact")
|
||||||
|
@ -186,11 +187,38 @@ public class TopicTests extends BaseTest {
|
||||||
topicDetails
|
topicDetails
|
||||||
.waitUntilScreenReady();
|
.waitUntilScreenReady();
|
||||||
String messageAmount = topicDetails.MessageCountAmount();
|
String messageAmount = topicDetails.MessageCountAmount();
|
||||||
Assertions.assertEquals(messageAmount,topicDetails.MessageCountAmount());
|
assertThat(messageAmount)
|
||||||
|
.withFailMessage("message amount not equals").isEqualTo(topicDetails.MessageCountAmount());
|
||||||
topicDetails
|
topicDetails
|
||||||
.openDotPartitionIdMenu()
|
.openDotPartitionIdMenu()
|
||||||
.clickClearMessagesBtn();
|
.clickClearMessagesBtn();
|
||||||
// Assertions.assertEquals(Integer.toString(Integer.valueOf(messageAmount)-1),topicDetails.MessageCountAmount());
|
// assertThat(Integer.toString(Integer.valueOf(messageAmount)-1))
|
||||||
|
// .withFailMessage("message amount not decrease by one").isEqualTo(topicDetails.MessageCountAmount());
|
||||||
|
}
|
||||||
|
|
||||||
|
@DisplayName("Redirect to consumer from topic profile")
|
||||||
|
@Suite(suiteId = SUITE_ID, title = SUITE_TITLE)
|
||||||
|
@AutomationStatus(status = Status.AUTOMATED)
|
||||||
|
@CaseId(20)
|
||||||
|
@Test
|
||||||
|
void redirectToConsumerFromTopic() {
|
||||||
|
String topicName = "source-activities";
|
||||||
|
String consumerGroupId = "connect-sink_postgres_activities";
|
||||||
|
naviSideBar
|
||||||
|
.openSideMenu(TOPICS);
|
||||||
|
topicsList
|
||||||
|
.waitUntilScreenReady()
|
||||||
|
.openTopic(topicName);
|
||||||
|
topicDetails
|
||||||
|
.waitUntilScreenReady()
|
||||||
|
.openTopicMenu(TopicDetails.TopicMenu.CONSUMERS)
|
||||||
|
.openConsumerGroup(consumerGroupId);
|
||||||
|
consumersDetails
|
||||||
|
.waitUntilScreenReady();
|
||||||
|
assertThat(consumersDetails.isRedirectedConsumerTitleVisible(consumerGroupId))
|
||||||
|
.withFailMessage("isRedirectedConsumerTitleVisible").isTrue();
|
||||||
|
assertThat(consumersDetails.isTopicInConsumersDetailsVisible(topicName))
|
||||||
|
.withFailMessage("isTopicInConsumersDetailsVisible").isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterAll
|
@AfterAll
|
||||||
|
|
Loading…
Add table
Reference in a new issue