* [e2e] review tests to use more object details while creating and updating#2699 * [e2e] review tests to use more object details while creating and updating#2699 * [e2e] review tests to use more object details while creating and updating#2699 * [e2e] review tests to use more object details while creating and updating#2699 * [e2e] review tests to use more object details while creating and updating#2699 * [e2e]Fix review tests to use more object details while creating and updating#2699 * [e2e]Fix2 review tests to use more object details while creating and updating#2699 * [e2e]Fix3 review tests to use more object details while creating and updating#2699 * [e2e]Fix3 review tests to use more object details while creating and updating#2699 * [e2e]Fix3 review tests to use more object details while creating and updating#2699 * [e2e]Fix3 review tests to use more object details while creating and updating#2699 * [e2e]Fix3 review tests to use more object details while creating and updating#2699 * [e2e]Fix without loadingSpinner. * [e2e]Fix without loadingSpinner. * [e2e]Fix without configTab. * fix KafkaConnectList() * [e2e]Fix with refresh. * fix ConnectorsTests() Co-authored-by: VladSenyuta <vlad.senyuta@gmail.com>
This commit is contained in:
parent
c4bbbbe3da
commit
b1891c021b
13 changed files with 226 additions and 90 deletions
|
@ -14,19 +14,19 @@ public class Schema {
|
|||
private SchemaType type;
|
||||
|
||||
public static Schema createSchemaAvro(){
|
||||
return new Schema().setName(randomAlphabetic(10))
|
||||
return new Schema().setName("schema_avro-" + randomAlphabetic(5))
|
||||
.setType(SchemaType.AVRO)
|
||||
.setValuePath(System.getProperty("user.dir") + "/src/main/resources/testData/schema_avro_value.json");
|
||||
}
|
||||
|
||||
public static Schema createSchemaJson(){
|
||||
return new Schema().setName(randomAlphabetic(10))
|
||||
return new Schema().setName("schema_json-" + randomAlphabetic(5))
|
||||
.setType(SchemaType.JSON)
|
||||
.setValuePath(System.getProperty("user.dir") + "/src/main/resources/testData/schema_Json_Value.json");
|
||||
}
|
||||
|
||||
public static Schema createSchemaProtobuf(){
|
||||
return new Schema().setName(randomAlphabetic(10))
|
||||
return new Schema().setName("schema_protobuf-" + randomAlphabetic(5))
|
||||
.setType(SchemaType.PROTOBUF)
|
||||
.setValuePath(System.getProperty("user.dir") + "/src/main/resources/testData/schema_protobuf_value.txt");
|
||||
}
|
||||
|
|
|
@ -1,10 +1,14 @@
|
|||
package com.provectus.kafka.ui.models;
|
||||
|
||||
import com.provectus.kafka.ui.pages.topic.TopicCreateEditForm;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class Topic {
|
||||
private String name, cleanupPolicyValue, timeToRetainData, maxSizeOnDisk, maxMessageBytes, messageKey, messageContent ;
|
||||
private String name, timeToRetainData, maxMessageBytes, messageKey, messageContent,
|
||||
partitions, customParameter;
|
||||
private TopicCreateEditForm.CleanupPolicyValue cleanupPolicyValue;
|
||||
private TopicCreateEditForm.MaxSizeOnDisk maxSizeOnDisk;
|
||||
}
|
|
@ -11,6 +11,7 @@ import java.util.stream.Stream;
|
|||
|
||||
import static com.codeborne.selenide.Selenide.$x;
|
||||
import static com.provectus.kafka.ui.settings.Source.CLUSTER_NAME;
|
||||
import static com.provectus.kafka.ui.utilities.WebUtils.clickByActions;
|
||||
|
||||
public class NaviSideBar {
|
||||
|
||||
|
@ -22,7 +23,7 @@ public class NaviSideBar {
|
|||
private SelenideElement expandCluster(String clusterName) {
|
||||
SelenideElement clusterElement = $x(String.format(clusterElementLocator, clusterName)).shouldBe(Condition.visible);
|
||||
if (clusterElement.parent().$$x(".//ul").size() == 0) {
|
||||
clusterElement.click();
|
||||
clickByActions(clusterElement);
|
||||
}
|
||||
return clusterElement;
|
||||
}
|
||||
|
@ -36,10 +37,8 @@ public class NaviSideBar {
|
|||
|
||||
@Step
|
||||
public NaviSideBar openSideMenu(String clusterName, SideMenuOption option) {
|
||||
expandCluster(clusterName)
|
||||
.parent()
|
||||
.$x(String.format(sideMenuOptionElementLocator, option.value))
|
||||
.click();
|
||||
clickByActions(expandCluster(clusterName).parent()
|
||||
.$x(String.format(sideMenuOptionElementLocator, option.value)));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.codeborne.selenide.SelenideElement;
|
|||
import io.qameta.allure.Step;
|
||||
|
||||
import static com.codeborne.selenide.Selenide.$x;
|
||||
import static com.codeborne.selenide.Selenide.refresh;
|
||||
import static com.provectus.kafka.ui.utilities.WebUtils.clickByJavaScript;
|
||||
|
||||
public class ConnectorCreateForm {
|
||||
|
@ -23,11 +24,16 @@ public class ConnectorCreateForm {
|
|||
}
|
||||
|
||||
@Step
|
||||
public ConnectorCreateForm setConnectorConfig(String connectName, String configJson) {
|
||||
public ConnectorCreateForm setConnectorDetails(String connectName, String configJson) {
|
||||
nameField.shouldBe(Condition.enabled).setValue(connectName);
|
||||
configField.shouldBe(Condition.enabled).click();
|
||||
contentTextArea.setValue(configJson);
|
||||
nameField.shouldBe(Condition.enabled).click();
|
||||
return this;
|
||||
}
|
||||
|
||||
@Step
|
||||
public ConnectorCreateForm clickSubmitButton() {
|
||||
clickByJavaScript(submitBtn);
|
||||
loadingSpinner.shouldBe(Condition.disappear);
|
||||
return this;
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
package com.provectus.kafka.ui.pages.connector;
|
||||
|
||||
import com.codeborne.selenide.Condition;
|
||||
import com.codeborne.selenide.SelenideElement;
|
||||
import io.qameta.allure.Step;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import static com.codeborne.selenide.Selenide.$x;
|
||||
import static com.provectus.kafka.ui.utilities.WebUtils.clearByKeyboard;
|
||||
import static com.provectus.kafka.ui.utilities.WebUtils.clickByJavaScript;
|
||||
import static com.provectus.kafka.ui.utilities.WebUtils.isVisible;
|
||||
|
||||
import com.codeborne.selenide.Condition;
|
||||
import com.codeborne.selenide.SelenideElement;
|
||||
import io.qameta.allure.Step;
|
||||
import java.time.Duration;
|
||||
import java.util.Arrays;
|
||||
|
||||
public class ConnectorDetails {
|
||||
|
||||
|
@ -22,12 +23,12 @@ public class ConnectorDetails {
|
|||
protected SelenideElement configTab = $x("//a[contains(text(),'Config')]");
|
||||
protected SelenideElement configField = $x("//div[@id='config']");
|
||||
protected SelenideElement successAlertMessage = $x("//div[contains(text(),'Config successfully updated')]");
|
||||
|
||||
protected String connectorHeaderLocator = "//h1[contains(text(),'%s')]";
|
||||
|
||||
@Step
|
||||
public ConnectorDetails waitUntilScreenReady() {
|
||||
loadingSpinner.shouldBe(Condition.disappear);
|
||||
Arrays.asList(taskTab,configTab).forEach(elementsMenu -> elementsMenu.shouldBe(Condition.visible));
|
||||
dotMenuBtn.shouldBe(Condition.visible);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -43,6 +44,11 @@ public class ConnectorDetails {
|
|||
clearByKeyboard(contentTextArea);
|
||||
contentTextArea.setValue(configJson);
|
||||
configField.shouldBe(Condition.enabled).click();
|
||||
return this;
|
||||
}
|
||||
|
||||
@Step
|
||||
public ConnectorDetails clickSubmitButton() {
|
||||
clickByJavaScript(submitBtn);
|
||||
successAlertMessage.shouldBe(Condition.visible);
|
||||
return this;
|
||||
|
@ -74,4 +80,9 @@ public class ConnectorDetails {
|
|||
clickConfirmBtn();
|
||||
return this;
|
||||
}
|
||||
|
||||
@Step
|
||||
public boolean isConnectorHeaderVisible(String connectorName) {
|
||||
return isVisible($x(String.format(connectorHeaderLocator,connectorName)));
|
||||
}
|
||||
}
|
|
@ -15,15 +15,14 @@ import static com.provectus.kafka.ui.utilities.WebUtils.isVisible;
|
|||
public class KafkaConnectList {
|
||||
|
||||
protected SelenideElement loadingSpinner = $x("//*[contains(text(),'Loading')]");
|
||||
protected SelenideElement pageTitle = $x("//h1[text()='Connectors']");
|
||||
protected SelenideElement createConnectorBtn = $x("//button[contains(text(),'Create Connector')]");
|
||||
protected SelenideElement connectorsGrid = $x("//table");
|
||||
protected String tabElementLocator = "//td[contains(text(),'%s')]";
|
||||
protected String connectorNameLocator = "//td[contains(text(),'%s')]";
|
||||
|
||||
@Step
|
||||
public KafkaConnectList waitUntilScreenReady() {
|
||||
loadingSpinner.shouldBe(Condition.disappear);
|
||||
pageTitle.shouldBe(Condition.visible);
|
||||
createConnectorBtn.shouldBe(Condition.visible);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -35,7 +34,7 @@ public class KafkaConnectList {
|
|||
|
||||
@Step
|
||||
public KafkaConnectList openConnector(String connectorName) {
|
||||
$x(String.format(tabElementLocator,connectorName))
|
||||
$x(String.format(connectorNameLocator, connectorName))
|
||||
.shouldBe(Condition.enabled).click();
|
||||
return this;
|
||||
}
|
||||
|
@ -43,13 +42,13 @@ public class KafkaConnectList {
|
|||
@Step
|
||||
public boolean isConnectorVisible(String connectorName) {
|
||||
connectorsGrid.shouldBe(Condition.visible);
|
||||
return isVisible($x(String.format(tabElementLocator,connectorName)));
|
||||
return isVisible($x(String.format(connectorNameLocator,connectorName)));
|
||||
}
|
||||
|
||||
@Step
|
||||
public KafkaConnectList connectorIsUpdatedInList(String connectorName, String topicName) {
|
||||
$x(String.format(tabElementLocator,connectorName)).shouldBe(Condition.visible);
|
||||
By.xpath(String.format(tabElementLocator,topicName)).refreshUntil(Condition.visible);
|
||||
$x(String.format(connectorNameLocator,connectorName)).shouldBe(Condition.visible);
|
||||
By.xpath(String.format(connectorNameLocator,topicName)).refreshUntil(Condition.visible);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ import io.qameta.allure.Step;
|
|||
import static com.codeborne.selenide.Selenide.$$x;
|
||||
import static com.codeborne.selenide.Selenide.$x;
|
||||
import static com.provectus.kafka.ui.utilities.WebUtils.clickByJavaScript;
|
||||
import static com.provectus.kafka.ui.utilities.WebUtils.isVisible;
|
||||
|
||||
public class SchemaDetails {
|
||||
|
||||
|
@ -17,6 +18,8 @@ public class SchemaDetails {
|
|||
protected SelenideElement editSchemaBtn = $x("//button[contains(text(),'Edit Schema')]");
|
||||
protected SelenideElement removeBtn = $x("//*[contains(text(),'Remove')]");
|
||||
protected SelenideElement confirmBtn = $x("//div[@role='dialog']//button[contains(text(),'Confirm')]");
|
||||
protected SelenideElement schemaTypeDdl = $x("//h4[contains(text(),'Type')]/../p");
|
||||
protected String schemaHeaderLocator = "//h1[contains(text(),'%s')]";
|
||||
|
||||
@Step
|
||||
public SchemaDetails waitUntilScreenReady() {
|
||||
|
@ -30,6 +33,16 @@ public class SchemaDetails {
|
|||
return compatibilityField.getText();
|
||||
}
|
||||
|
||||
@Step
|
||||
public boolean isSchemaHeaderVisible(String schemaName) {
|
||||
return isVisible($x(String.format(schemaHeaderLocator,schemaName)));
|
||||
}
|
||||
|
||||
@Step
|
||||
public String getSchemaType() {
|
||||
return schemaTypeDdl.getText();
|
||||
}
|
||||
|
||||
@Step
|
||||
public SchemaDetails openEditSchema(){
|
||||
editSchemaBtn.shouldBe(Condition.visible).click();
|
||||
|
|
|
@ -14,12 +14,14 @@ public class TopicCreateEditForm {
|
|||
|
||||
protected SelenideElement loadingSpinner = $x("//*[contains(text(),'Loading')]");
|
||||
protected SelenideElement timeToRetainField = $x("//input[@id='timeToRetain']");
|
||||
protected SelenideElement partitionsField = $x("//input[@name='partitions']");
|
||||
protected SelenideElement nameField = $x("//input[@name='name']");
|
||||
protected SelenideElement maxMessageBytesField = $x("//input[@name='maxMessageBytes']");
|
||||
protected SelenideElement minInSyncReplicasField = $x("//input[@name='minInSyncReplicas']");
|
||||
protected SelenideElement cleanUpPolicyDdl = $x("//ul[@id='topicFormCleanupPolicy']");
|
||||
protected SelenideElement maxSizeOnDiscDdl = $x("//ul[@id='topicFormRetentionBytes']");
|
||||
protected SelenideElement createTopicBtn = $x("//button[@type='submit']");
|
||||
protected String cleanUpPolicyTypeLocator = "//li[text()='%s']";
|
||||
protected String ddlElementLocator = "//li[@value='%s']";
|
||||
|
||||
@Step
|
||||
public TopicCreateEditForm waitUntilScreenReady(){
|
||||
|
@ -53,8 +55,9 @@ public class TopicCreateEditForm {
|
|||
}
|
||||
|
||||
@Step
|
||||
public TopicCreateEditForm setMaxSizeOnDiskInGB(String value) {
|
||||
new KafkaUISelectElement("retentionBytes").selectByVisibleText(value);
|
||||
public TopicCreateEditForm setMaxSizeOnDiskInGB(MaxSizeOnDisk MaxSizeOnDisk) {
|
||||
maxSizeOnDiscDdl.shouldBe(Condition.visible).click();
|
||||
$x(String.format(ddlElementLocator, MaxSizeOnDisk.getOptionValue())).shouldBe(Condition.visible).click();
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -69,6 +72,12 @@ public class TopicCreateEditForm {
|
|||
return setMaxMessageBytes(Long.parseLong(bytes));
|
||||
}
|
||||
|
||||
@Step
|
||||
public TopicCreateEditForm setPartitions(String partitions){
|
||||
partitionsField.setValue(partitions);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Step
|
||||
public TopicCreateEditForm setTimeToRetainDataInMsUsingButtons(String value) {
|
||||
timeToRetainField
|
||||
|
@ -81,15 +90,9 @@ public class TopicCreateEditForm {
|
|||
}
|
||||
|
||||
@Step
|
||||
public TopicCreateEditForm selectCleanupPolicy(CleanupPolicyValue cleanupPolicyValue) {
|
||||
return selectFromDropDownByOptionValue("cleanupPolicy",
|
||||
cleanupPolicyValue.getOptionValue());
|
||||
}
|
||||
|
||||
@Step
|
||||
public TopicCreateEditForm selectCleanupPolicy(String cleanupPolicyOptionValue) {
|
||||
public TopicCreateEditForm selectCleanupPolicy(CleanupPolicyValue cleanupPolicyOptionValue) {
|
||||
cleanUpPolicyDdl.shouldBe(Condition.visible).click();
|
||||
$x(String.format(cleanUpPolicyTypeLocator,cleanupPolicyOptionValue)).shouldBe(Condition.visible).click();
|
||||
$x(String.format(ddlElementLocator,cleanupPolicyOptionValue.getOptionValue())).shouldBe(Condition.visible).click();
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -242,6 +245,30 @@ public class TopicCreateEditForm {
|
|||
}
|
||||
}
|
||||
|
||||
public enum MaxSizeOnDisk {
|
||||
NOT_SET("-1", "Not Set"),
|
||||
SIZE_1_GB("1073741824", "1 GB"),
|
||||
SIZE_10_GB("10737418240", "10 GB"),
|
||||
SIZE_20_GB("21474836480", "20 GB"),
|
||||
SIZE_50_GB("53687091200", "50 GB");
|
||||
|
||||
private final String optionValue;
|
||||
private final String visibleText;
|
||||
|
||||
MaxSizeOnDisk(String optionValue, String visibleText) {
|
||||
this.optionValue = optionValue;
|
||||
this.visibleText = visibleText;
|
||||
}
|
||||
|
||||
public String getOptionValue() {
|
||||
return optionValue;
|
||||
}
|
||||
|
||||
public String getVisibleText() {
|
||||
return visibleText;
|
||||
}
|
||||
}
|
||||
|
||||
private TopicCreateEditForm selectFromDropDownByOptionValue(String dropDownElementName,
|
||||
String optionValue) {
|
||||
KafkaUISelectElement select = new KafkaUISelectElement(dropDownElementName);
|
||||
|
|
|
@ -11,6 +11,7 @@ import java.util.Arrays;
|
|||
|
||||
import static com.codeborne.selenide.Selenide.*;
|
||||
import static com.provectus.kafka.ui.utilities.WebUtils.clickByJavaScript;
|
||||
import static com.provectus.kafka.ui.utilities.WebUtils.isVisible;
|
||||
|
||||
@ExtensionMethod({WaitUtils.class})
|
||||
public class TopicDetails {
|
||||
|
@ -26,7 +27,10 @@ public class TopicDetails {
|
|||
protected SelenideElement confirmBtn = $x("//div[@role='dialog']//button[contains(text(),'Confirm')]");
|
||||
protected SelenideElement produceMessageBtn = $x("//div//button[text()='Produce Message']");
|
||||
protected SelenideElement contentMessageTab = $x("//html//div[@id='root']/div/main//table//p");
|
||||
protected SelenideElement cleanUpPolicyField = $x("//div[contains(text(),'Clean Up Policy')]/../span/*");
|
||||
protected SelenideElement partitionsField = $x("//div[contains(text(),'Partitions')]/../span");
|
||||
protected String consumerIdLocator = "//a[@title='%s']";
|
||||
protected String topicHeaderLocator = "//h1[contains(text(),'%s')]";
|
||||
|
||||
@Step
|
||||
public TopicDetails waitUntilScreenReady() {
|
||||
|
@ -54,6 +58,21 @@ public class TopicDetails {
|
|||
return this;
|
||||
}
|
||||
|
||||
@Step
|
||||
public String getCleanUpPolicy(){
|
||||
return cleanUpPolicyField.getText();
|
||||
}
|
||||
|
||||
@Step
|
||||
public String getPartitions(){
|
||||
return partitionsField.getText();
|
||||
}
|
||||
|
||||
@Step
|
||||
public boolean isTopicHeaderVisible(String topicName) {
|
||||
return isVisible($x(String.format(topicHeaderLocator,topicName)));
|
||||
}
|
||||
|
||||
@Step
|
||||
public TopicDetails clickClearMessagesBtn() {
|
||||
clearMessagesBtn.shouldBe(Condition.visible.because("Clear Messages invisible")).click();
|
||||
|
@ -74,7 +93,6 @@ public class TopicDetails {
|
|||
clickByJavaScript(produceMessageBtn);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Step
|
||||
public TopicDetails openConsumerGroup(String consumerId) {
|
||||
$x(String.format(consumerIdLocator, consumerId)).click();
|
||||
|
|
|
@ -2,14 +2,25 @@ package com.provectus.kafka.ui.utilities;
|
|||
|
||||
import com.codeborne.selenide.Condition;
|
||||
import com.codeborne.selenide.SelenideElement;
|
||||
import com.codeborne.selenide.WebDriverRunner;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.openqa.selenium.Keys;
|
||||
import org.openqa.selenium.interactions.Actions;
|
||||
|
||||
import static com.codeborne.selenide.Selenide.executeJavaScript;
|
||||
|
||||
@Slf4j
|
||||
public class WebUtils {
|
||||
|
||||
public static void clickByActions(SelenideElement element) {
|
||||
log.debug("\nclickByActions: {}", element.getSearchCriteria());
|
||||
element.shouldBe(Condition.enabled);
|
||||
new Actions(WebDriverRunner.getWebDriver())
|
||||
.moveToElement(element)
|
||||
.click(element)
|
||||
.perform();
|
||||
}
|
||||
|
||||
public static void clickByJavaScript(SelenideElement element) {
|
||||
log.debug("\nclickByJavaScript: {}", element.getSearchCriteria());
|
||||
element.shouldBe(Condition.enabled);
|
||||
|
@ -34,4 +45,5 @@ public class WebUtils {
|
|||
}
|
||||
return isVisible;
|
||||
}
|
||||
|
||||
}
|
|
@ -15,6 +15,7 @@ import java.util.List;
|
|||
import static com.provectus.kafka.ui.pages.NaviSideBar.SideMenuOption.KAFKA_CONNECT;
|
||||
import static com.provectus.kafka.ui.settings.Source.CLUSTER_NAME;
|
||||
import static com.provectus.kafka.ui.utilities.FileUtils.getResourceAsString;
|
||||
import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic;
|
||||
|
||||
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
||||
public class ConnectorsTests extends BaseTest {
|
||||
|
@ -26,19 +27,19 @@ public class ConnectorsTests extends BaseTest {
|
|||
private static final String MESSAGE_CONTENT = "message_content_create_topic.json";
|
||||
private static final String MESSAGE_KEY = " ";
|
||||
private static final Topic TOPIC_FOR_CREATE = new Topic()
|
||||
.setName("topic_for_create_connector")
|
||||
.setName("topic_for_create_connector-" + randomAlphabetic(5))
|
||||
.setMessageContent(MESSAGE_CONTENT).setMessageKey(MESSAGE_KEY);
|
||||
private static final Topic TOPIC_FOR_DELETE = new Topic()
|
||||
.setName("topic_for_delete_connector")
|
||||
.setName("topic_for_delete_connector-" + randomAlphabetic(5))
|
||||
.setMessageContent(MESSAGE_CONTENT).setMessageKey(MESSAGE_KEY);
|
||||
private static final Topic TOPIC_FOR_UPDATE = new Topic()
|
||||
.setName("topic_for_update_connector")
|
||||
.setName("topic_for_update_connector-" + randomAlphabetic(5))
|
||||
.setMessageContent(MESSAGE_CONTENT).setMessageKey(MESSAGE_KEY);
|
||||
private static final Connector CONNECTOR_FOR_DELETE = new Connector()
|
||||
.setName("sink_postgres_activities_e2e_checks_for_delete")
|
||||
.setName("sink_postgres_activities_e2e_checks_for_delete-" + randomAlphabetic(5))
|
||||
.setConfig(getResourceAsString("delete_connector_config.json"));
|
||||
private static final Connector CONNECTOR_FOR_UPDATE = new Connector()
|
||||
.setName("sink_postgres_activities_e2e_checks_for_update")
|
||||
.setName("sink_postgres_activities_e2e_checks_for_update-" + randomAlphabetic(5))
|
||||
.setConfig(getResourceAsString("config_for_create_connector_via_api.json"));
|
||||
|
||||
@BeforeAll
|
||||
|
@ -60,7 +61,7 @@ public class ConnectorsTests extends BaseTest {
|
|||
@Test
|
||||
public void createConnector() {
|
||||
Connector connectorForCreate = new Connector()
|
||||
.setName("sink_postgres_activities_e2e_checks")
|
||||
.setName("sink_postgres_activities_e2e_checks-" + randomAlphabetic(5))
|
||||
.setConfig(getResourceAsString("config_for_create_connector.json"));
|
||||
naviSideBar
|
||||
.openSideMenu(KAFKA_CONNECT);
|
||||
|
@ -69,12 +70,23 @@ public class ConnectorsTests extends BaseTest {
|
|||
.clickCreateConnectorBtn();
|
||||
connectorCreateForm
|
||||
.waitUntilScreenReady()
|
||||
.setConnectorConfig(connectorForCreate.getName(), connectorForCreate.getConfig());
|
||||
.setConnectorDetails(connectorForCreate.getName(), connectorForCreate.getConfig())
|
||||
.clickSubmitButton();
|
||||
connectorDetails
|
||||
.waitUntilScreenReady();
|
||||
naviSideBar
|
||||
.openSideMenu(KAFKA_CONNECT);
|
||||
kafkaConnectList
|
||||
.waitUntilScreenReady()
|
||||
.openConnector(connectorForCreate.getName());
|
||||
connectorDetails
|
||||
.waitUntilScreenReady();
|
||||
Assertions.assertTrue(connectorDetails.isConnectorHeaderVisible(connectorForCreate.getName()),"isConnectorTitleVisible()");
|
||||
naviSideBar
|
||||
.openSideMenu(KAFKA_CONNECT);
|
||||
kafkaConnectList
|
||||
.waitUntilScreenReady();
|
||||
Assertions.assertTrue(kafkaConnectList.isConnectorVisible(connectorForCreate.getName()), "isConnectorVisible()");
|
||||
Assertions.assertTrue(kafkaConnectList.isConnectorVisible(CONNECTOR_FOR_DELETE.getName()), "isConnectorVisible()");
|
||||
CONNECTOR_LIST.add(connectorForCreate);
|
||||
}
|
||||
|
||||
|
@ -92,7 +104,8 @@ public class ConnectorsTests extends BaseTest {
|
|||
connectorDetails
|
||||
.waitUntilScreenReady()
|
||||
.openConfigTab()
|
||||
.setConfig(CONNECTOR_FOR_UPDATE.getConfig());
|
||||
.setConfig(CONNECTOR_FOR_UPDATE.getConfig())
|
||||
.clickSubmitButton();
|
||||
naviSideBar
|
||||
.openSideMenu(KAFKA_CONNECT);
|
||||
kafkaConnectList
|
||||
|
|
|
@ -8,6 +8,7 @@ import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.Suite;
|
|||
import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status;
|
||||
import io.qase.api.annotation.CaseId;
|
||||
import lombok.SneakyThrows;
|
||||
import org.assertj.core.api.SoftAssertions;
|
||||
import org.junit.jupiter.api.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -54,11 +55,16 @@ public class SchemasTests extends BaseTest {
|
|||
.clickSubmitBtn();
|
||||
schemaDetails
|
||||
.waitUntilScreenReady();
|
||||
SoftAssertions softly = new SoftAssertions();
|
||||
softly.assertThat(schemaDetails.isSchemaHeaderVisible(schemaAvro.getName())).as("isSchemaHeaderVisible()").isTrue();
|
||||
softly.assertThat(schemaDetails.getSchemaType()).as("getSchemaType()").isEqualTo(schemaAvro.getType().getValue());
|
||||
softly.assertThat(schemaDetails.getCompatibility()).as("getCompatibility()").isEqualTo(CompatibilityLevel.CompatibilityEnum.BACKWARD.getValue());
|
||||
softly.assertAll();
|
||||
naviSideBar
|
||||
.openSideMenu(SCHEMA_REGISTRY);
|
||||
schemaRegistryList
|
||||
.waitUntilScreenReady();
|
||||
Assertions.assertTrue(schemaRegistryList.isSchemaVisible(schemaAvro.getName()),"isSchemaVisible()");
|
||||
Assertions.assertTrue(schemaRegistryList.isSchemaVisible(AVRO_API.getName()),"isSchemaVisible()");
|
||||
SCHEMA_LIST.add(schemaAvro);
|
||||
}
|
||||
|
||||
|
@ -131,11 +137,16 @@ public class SchemasTests extends BaseTest {
|
|||
.clickSubmitBtn();
|
||||
schemaDetails
|
||||
.waitUntilScreenReady();
|
||||
SoftAssertions softly = new SoftAssertions();
|
||||
softly.assertThat(schemaDetails.isSchemaHeaderVisible(schemaJson.getName())).as("isSchemaHeaderVisible()").isTrue();
|
||||
softly.assertThat(schemaDetails.getSchemaType()).as("getSchemaType()").isEqualTo(schemaJson.getType().getValue());
|
||||
softly.assertThat(schemaDetails.getCompatibility()).as("getCompatibility()").isEqualTo(CompatibilityLevel.CompatibilityEnum.BACKWARD.getValue());
|
||||
softly.assertAll();
|
||||
naviSideBar
|
||||
.openSideMenu(SCHEMA_REGISTRY);
|
||||
schemaRegistryList
|
||||
.waitUntilScreenReady();
|
||||
Assertions.assertTrue(schemaRegistryList.isSchemaVisible(schemaJson.getName()),"isSchemaVisible()");
|
||||
Assertions.assertTrue(schemaRegistryList.isSchemaVisible(JSON_API.getName()),"isSchemaVisible()");
|
||||
SCHEMA_LIST.add(schemaJson);
|
||||
}
|
||||
|
||||
|
@ -180,11 +191,16 @@ public class SchemasTests extends BaseTest {
|
|||
.clickSubmitBtn();
|
||||
schemaDetails
|
||||
.waitUntilScreenReady();
|
||||
SoftAssertions softly = new SoftAssertions();
|
||||
softly.assertThat(schemaDetails.isSchemaHeaderVisible(schemaProtobuf.getName())).as("isSchemaHeaderVisible()").isTrue();
|
||||
softly.assertThat(schemaDetails.getSchemaType()).as("getSchemaType()").isEqualTo(schemaProtobuf.getType().getValue());
|
||||
softly.assertThat(schemaDetails.getCompatibility()).as("getCompatibility()").isEqualTo(CompatibilityLevel.CompatibilityEnum.BACKWARD.getValue());
|
||||
softly.assertAll();
|
||||
naviSideBar
|
||||
.openSideMenu(SCHEMA_REGISTRY);
|
||||
schemaRegistryList
|
||||
.waitUntilScreenReady();
|
||||
Assertions.assertTrue(schemaRegistryList.isSchemaVisible(schemaProtobuf.getName()),"isSchemaVisible()");
|
||||
Assertions.assertTrue(schemaRegistryList.isSchemaVisible(PROTOBUF_API.getName()),"isSchemaVisible()");
|
||||
SCHEMA_LIST.add(schemaProtobuf);
|
||||
}
|
||||
|
||||
|
|
|
@ -15,29 +15,36 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
import static com.provectus.kafka.ui.pages.NaviSideBar.SideMenuOption.TOPICS;
|
||||
import static com.provectus.kafka.ui.pages.topic.TopicCreateEditForm.CleanupPolicyValue.COMPACT;
|
||||
import static com.provectus.kafka.ui.pages.topic.TopicCreateEditForm.CleanupPolicyValue.DELETE;
|
||||
import static com.provectus.kafka.ui.pages.topic.TopicCreateEditForm.MaxSizeOnDisk.SIZE_20_GB;
|
||||
import static com.provectus.kafka.ui.settings.Source.CLUSTER_NAME;
|
||||
import static com.provectus.kafka.ui.utilities.FileUtils.fileToString;
|
||||
import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
||||
public class TopicTests extends BaseTest {
|
||||
private static final long SUITE_ID = 2;
|
||||
private static final String SUITE_TITLE = "Topics";
|
||||
|
||||
private static final Topic TOPIC_TO_CREATE = new Topic()
|
||||
.setName("new-topic-"+ randomAlphabetic(5))
|
||||
.setPartitions("1")
|
||||
.setCleanupPolicyValue(DELETE);
|
||||
private static final Topic TOPIC_FOR_UPDATE = new Topic()
|
||||
.setName("topic-to-update")
|
||||
.setCleanupPolicyValue("Compact")
|
||||
.setName("topic-to-update-" + randomAlphabetic(5))
|
||||
.setCleanupPolicyValue(COMPACT)
|
||||
.setTimeToRetainData("604800001")
|
||||
.setMaxSizeOnDisk("20 GB")
|
||||
.setMaxSizeOnDisk(SIZE_20_GB)
|
||||
.setMaxMessageBytes("1000020")
|
||||
.setMessageKey(fileToString(System.getProperty("user.dir") + "/src/test/resources/producedkey.txt"))
|
||||
.setMessageContent(fileToString(System.getProperty("user.dir") + "/src/test/resources/testData.txt"));
|
||||
private static final Topic TOPIC_FOR_MESSAGES = new Topic()
|
||||
.setName("topic-with-clean-message-attribute")
|
||||
.setName("topic-with-clean-message-attribute-" + randomAlphabetic(5))
|
||||
.setMessageKey(fileToString(System.getProperty("user.dir") + "/src/test/resources/producedkey.txt"))
|
||||
.setMessageContent(fileToString(System.getProperty("user.dir") + "/src/test/resources/testData.txt"));
|
||||
|
||||
private static final Topic TOPIC_FOR_DELETE = new Topic().setName("topic-to-delete");
|
||||
private static final Topic TOPIC_FOR_DELETE = new Topic().setName("topic-to-delete-" + randomAlphabetic(5));
|
||||
private static final List<Topic> TOPIC_LIST = new ArrayList<>();
|
||||
|
||||
@BeforeAll
|
||||
|
@ -52,7 +59,6 @@ public class TopicTests extends BaseTest {
|
|||
@CaseId(199)
|
||||
@Test
|
||||
public void createTopic() {
|
||||
Topic topicToCreate = new Topic().setName("new-topic");
|
||||
naviSideBar
|
||||
.openSideMenu(TOPICS);
|
||||
topicsList
|
||||
|
@ -60,16 +66,28 @@ public class TopicTests extends BaseTest {
|
|||
.clickAddTopicBtn();
|
||||
topicCreateEditForm
|
||||
.waitUntilScreenReady()
|
||||
.setTopicName(topicToCreate.getName())
|
||||
.setTopicName(TOPIC_TO_CREATE.getName())
|
||||
.setPartitions(TOPIC_TO_CREATE.getPartitions())
|
||||
.selectCleanupPolicy(TOPIC_TO_CREATE.getCleanupPolicyValue())
|
||||
.clickCreateTopicBtn();
|
||||
topicDetails
|
||||
.waitUntilScreenReady();
|
||||
naviSideBar
|
||||
.openSideMenu(TOPICS);
|
||||
topicsList
|
||||
.waitUntilScreenReady()
|
||||
.openTopic(TOPIC_TO_CREATE.getName());
|
||||
SoftAssertions softly = new SoftAssertions();
|
||||
softly.assertThat(topicDetails.isTopicHeaderVisible(TOPIC_TO_CREATE.getName())).as("isTopicHeaderVisible()").isTrue();
|
||||
softly.assertThat(topicDetails.getCleanUpPolicy()).as("getCleanUpPolicy()").isEqualTo(TOPIC_TO_CREATE.getCleanupPolicyValue().toString());
|
||||
softly.assertThat(topicDetails.getPartitions()).as("getPartitions()").isEqualTo(TOPIC_TO_CREATE.getPartitions());
|
||||
softly.assertAll();
|
||||
naviSideBar
|
||||
.openSideMenu(TOPICS);
|
||||
topicsList
|
||||
.waitUntilScreenReady();
|
||||
Assertions.assertTrue(topicsList.isTopicVisible(topicToCreate.getName()), "isTopicVisible");
|
||||
TOPIC_LIST.add(topicToCreate);
|
||||
Assertions.assertTrue(topicsList.isTopicVisible(TOPIC_TO_CREATE.getName()), "isTopicVisible");
|
||||
TOPIC_LIST.add(TOPIC_TO_CREATE);
|
||||
}
|
||||
|
||||
@Disabled("https://github.com/provectus/kafka-ui/issues/2625")
|
||||
|
@ -89,7 +107,7 @@ public class TopicTests extends BaseTest {
|
|||
.openEditSettings();
|
||||
topicCreateEditForm
|
||||
.waitUntilScreenReady()
|
||||
.selectCleanupPolicy(TOPIC_FOR_UPDATE.getCleanupPolicyValue())
|
||||
.selectCleanupPolicy((TOPIC_FOR_UPDATE.getCleanupPolicyValue()))
|
||||
.setMinInsyncReplicas(10)
|
||||
.setTimeToRetainDataInMs(TOPIC_FOR_UPDATE.getTimeToRetainData())
|
||||
.setMaxSizeOnDiskInGB(TOPIC_FOR_UPDATE.getMaxSizeOnDisk())
|
||||
|
@ -106,10 +124,10 @@ public class TopicTests extends BaseTest {
|
|||
.waitUntilScreenReady()
|
||||
.openEditSettings();
|
||||
SoftAssertions softly = new SoftAssertions();
|
||||
softly.assertThat(topicCreateEditForm.getCleanupPolicy()).as("Cleanup Policy").isEqualTo(TOPIC_FOR_UPDATE.getCleanupPolicyValue());
|
||||
softly.assertThat(topicCreateEditForm.getTimeToRetain()).as("Time to retain").isEqualTo(TOPIC_FOR_UPDATE.getTimeToRetainData());
|
||||
softly.assertThat(topicCreateEditForm.getMaxSizeOnDisk()).as("Max size on disk").isEqualTo(TOPIC_FOR_UPDATE.getMaxSizeOnDisk());
|
||||
softly.assertThat(topicCreateEditForm.getMaxMessageBytes()).as("Max message bytes").isEqualTo(TOPIC_FOR_UPDATE.getMaxMessageBytes());
|
||||
softly.assertThat(topicCreateEditForm.getCleanupPolicy()).as("getCleanupPolicy()").isEqualTo(TOPIC_FOR_UPDATE.getCleanupPolicyValue().getVisibleText());
|
||||
softly.assertThat(topicCreateEditForm.getTimeToRetain()).as("getTimeToRetain()").isEqualTo(TOPIC_FOR_UPDATE.getTimeToRetainData());
|
||||
softly.assertThat(topicCreateEditForm.getMaxSizeOnDisk()).as("getMaxSizeOnDisk()").isEqualTo(TOPIC_FOR_UPDATE.getMaxSizeOnDisk().getVisibleText());
|
||||
softly.assertThat(topicCreateEditForm.getMaxMessageBytes()).as("getMaxMessageBytes()").isEqualTo(TOPIC_FOR_UPDATE.getMaxMessageBytes());
|
||||
softly.assertAll();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue