Services page fix (#4401)

This commit is contained in:
kshinde2512 2022-04-23 21:59:59 +05:30 committed by GitHub
parent 6f8cea8130
commit c77d710cd3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 132 additions and 21 deletions

View File

@ -32,7 +32,7 @@ public class Common {
By serviceUsername = By.cssSelector("[id='root_username']");
By servicePassword = By.cssSelector("[id='root_password']");
By nextButton = By.cssSelector("[data-testid='next-button']");
By saveServiceButton = By.cssSelector("[data-testid='deploy-button']");
By saveServiceButton = By.cssSelector("[data-testid='submit-btn']");
By saveEditedService = By.cssSelector("[data-testid='save-button']");
By saveConnectionConfig = By.cssSelector("[data-testid='saveManageTab']");
By searchResults = By.cssSelector("[data-testid='search-results']");
@ -102,6 +102,7 @@ public class Common {
By hostPort = By.cssSelector("[id='root_hostPort']");
By addIngestion = By.cssSelector("[data-testid='add-ingestion-button']");
By deployButton = By.cssSelector("[data-testid='deploy-button']");
By confirmButton = By.cssSelector("[data-testid='confirm-button']");
public List<WebElement> versionRadioButton() {
return webDriver.findElements(versionRadioButton);

View File

@ -15,6 +15,7 @@ public class DatabaseServicePage {
By editIngestion = By.cssSelector("[data-testid='edit']");
By deleteIngestion = By.cssSelector("[data-testid='delete']");
By selectInterval = By.xpath("//select[@id='ingestionType']");
By confirmationDeleteText = By.cssSelector("[data-testid='confirmation-text-input']");
public By ingestionInterval(String interval) {
return By.xpath("//select[@id='ingestionType']/option[@value='" + interval + "']");

View File

@ -13,4 +13,6 @@ public class MessagingServicePage {
By messagingServiceBootstrapServers = By.cssSelector("[id='root_bootstrapServers']");
By messagingServiceSchemaRegistry = By.cssSelector("[id='root_schemaRegistryURL']");
By confirmationDeleteText = By.cssSelector("[data-testid='confirmation-text-input']");
By deleteIngestion = By.cssSelector("[data-testid='delete']");
}

View File

@ -16,7 +16,7 @@ public class RolesPage {
By listAccess = By.cssSelector("[data-testid='select-access']");
By ruleToggleButton = By.cssSelector("[data-testid='rule-switch']");
By editRuleButton = By.xpath("(//tbody[@data-testid='table-body']/tr/td/div/span)[1]");
By accessValue = By.xpath("//tbody[@data-testid='table-body']/tr/td[2]/p");
By accessValue = By.xpath("(//tbody[@data-testid='table-body']/tr/td[2]/p)[1]");
By deleteRuleButton = By.cssSelector("[data-testid='image'][title='Delete']");
By rolesDisplayName = By.name("displayName");
By errorMessage = By.xpath("//strong[@data-testid='error-message']");

View File

@ -30,6 +30,7 @@ import org.openmetadata.catalog.selenium.objectRepository.Common;
import org.openmetadata.catalog.selenium.objectRepository.DashboardServicePage;
import org.openmetadata.catalog.selenium.properties.Property;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.TimeoutException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
@ -109,7 +110,22 @@ class DashboardServiceTestPage {
Events.sendKeys(webDriver, common.serviceUsername(), "openmetadata_user");
Events.sendKeys(webDriver, common.servicePassword(), "openmetadata_password");
Events.sendKeys(webDriver, dashboardServicePage.hostPort(), "localhost:8080");
Events.click(webDriver, common.saveManage());
Events.click(webDriver, common.saveServiceButton());
Thread.sleep(waitTime);
Events.click(webDriver, common.addIngestion());
Events.click(webDriver, common.nextButton());
Events.click(webDriver, common.deployButton());
Events.click(webDriver, common.headerSettings());
Events.click(webDriver, common.headerSettingsMenu("Services"));
Events.click(webDriver, common.selectServiceTab(3));
Thread.sleep(waitTime);
try {
if (webDriver.getPageSource().contains(serviceName)) {
LOG.info("Success");
}
} catch (NoSuchElementException | TimeoutException r) {
Assert.fail("Service not added");
}
}
@Test
@ -133,7 +149,7 @@ class DashboardServiceTestPage {
Events.sendKeys(webDriver, dashboardServicePage.hostPort(), "test");
Events.sendKeys(webDriver, common.serviceUsername(), "test");
Events.sendKeys(webDriver, common.servicePassword(), "test");
Events.click(webDriver, common.saveManage());
Events.click(webDriver, common.saveServiceButton());
Thread.sleep(2000);
try {
WebElement errorText = webDriver.findElement(common.containsText("Error while updating service"));
@ -149,9 +165,16 @@ class DashboardServiceTestPage {
@Order(5)
void deleteDashboardService() throws InterruptedException {
openDashboardServicePage();
Thread.sleep(2000);
Events.click(webDriver, common.deleteServiceButton(serviceName));
Events.click(webDriver, common.saveEditedService());
Thread.sleep(waitTime);
try {
if (webDriver.findElement(common.containsText(serviceName)).isDisplayed()) {
Assert.fail("Service not deleted");
}
} catch (NoSuchElementException | TimeoutException e) {
LOG.info("Success");
}
}
@AfterEach

View File

@ -115,14 +115,21 @@ class DatabaseServicePageTest {
Events.sendKeys(webDriver, common.hostPort(), "localhost");
Events.click(webDriver, common.databaseName());
Events.sendKeys(webDriver, common.databaseName(), "openmetadata_db");
Events.click(webDriver, common.saveManage());
Events.click(webDriver, common.saveServiceButton());
Thread.sleep(waitTime);
Events.click(webDriver, common.addIngestion());
Events.click(webDriver, common.nextButton());
Events.click(webDriver, common.deployButton());
Events.click(webDriver, common.headerSettings());
Events.click(webDriver, common.headerSettingsMenu("Services"));
Events.click(webDriver, common.containsText(serviceName));
Thread.sleep(waitTime);
try {
if (webDriver.getPageSource().contains(serviceName)) {
LOG.info("Success");
}
} catch (NoSuchElementException | TimeoutException r) {
Assert.fail("Service not added");
}
}
@Test
@ -155,10 +162,10 @@ class DatabaseServicePageTest {
Events.click(webDriver, databaseServicePage.editIngestion()); // edit ingestion
Events.click(webDriver, common.nextButton());
Events.click(webDriver, common.deployButton());
webDriver.navigate().refresh();
Thread.sleep(waitTime);
Events.click(webDriver, databaseServicePage.deleteIngestion()); // delete ingestion
Events.click(webDriver, common.deployButton());
Events.sendKeys(webDriver, databaseServicePage.confirmationDeleteText(), "DELETE");
Events.click(webDriver, common.confirmButton());
}
@Test
@ -170,7 +177,7 @@ class DatabaseServicePageTest {
Events.sendKeys(webDriver, common.serviceUsername(), "test");
Events.sendKeys(webDriver, common.servicePassword(), "test");
Events.sendKeys(webDriver, common.databaseName(), "test");
Events.click(webDriver, common.saveConnectionConfig());
Events.click(webDriver, common.saveServiceButton());
Thread.sleep(2000);
try {
WebElement errorText = webDriver.findElement(common.containsText("Error while updating service"));
@ -188,6 +195,14 @@ class DatabaseServicePageTest {
openDatabaseServicePage();
Events.click(webDriver, common.deleteServiceButton(serviceName));
Events.click(webDriver, common.saveEditedService());
Thread.sleep(waitTime);
try {
if (webDriver.findElement(common.containsText(serviceName)).isDisplayed()) {
Assert.fail("Service not deleted");
}
} catch (NoSuchElementException | TimeoutException e) {
LOG.info("Success");
}
}
@AfterEach

View File

@ -174,7 +174,6 @@ class GlossaryPageTest {
openGlossaryPage();
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.addTagButton());
Events.click(webDriver, common.selectUser());
Events.sendKeys(webDriver, common.displayName(), termName);
Events.click(webDriver, common.descriptionBoldButton());
Events.sendKeys(webDriver, common.focusedDescriptionBox(), faker.address().toString());
@ -200,6 +199,8 @@ class GlossaryPageTest {
@Order(9)
void addTagToTerm() throws InterruptedException {
openGlossaryPage();
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.containsText(termName));
Events.click(webDriver, common.breadCrumbTags());
Events.click(webDriver, common.enterAssociatedTagName());
@ -217,6 +218,8 @@ class GlossaryPageTest {
@Order(10)
void addTermReviewer() throws InterruptedException {
openGlossaryPage();
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.containsText(termName));
Events.click(webDriver, glossary.reviewers());
Events.click(webDriver, common.addGlossaryReviewer());
@ -231,6 +234,8 @@ class GlossaryPageTest {
@Order(11)
void deleteTermReviewer() throws InterruptedException {
openGlossaryPage();
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.containsText(termName));
Events.click(webDriver, glossary.reviewers());
Thread.sleep(waitTime);
@ -245,6 +250,8 @@ class GlossaryPageTest {
@Order(12)
void removeAddedReviewersToTerm() throws InterruptedException {
openGlossaryPage();
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.containsText(termName));
Events.click(webDriver, glossary.reviewers());
Events.click(webDriver, common.addGlossaryReviewer());
@ -261,6 +268,8 @@ class GlossaryPageTest {
@Order(13)
void removeAddedTagsToTerm() throws InterruptedException {
openGlossaryPage();
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.containsText(termName));
Events.click(webDriver, glossary.editGlossaryTag());
for (int i = 0; i < 2; i++) {

View File

@ -17,6 +17,7 @@ import com.github.javafaker.Faker;
import java.time.Duration;
import java.util.ArrayList;
import java.util.List;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.MethodOrderer;
@ -27,13 +28,17 @@ import org.openmetadata.catalog.selenium.events.Events;
import org.openmetadata.catalog.selenium.objectRepository.Common;
import org.openmetadata.catalog.selenium.objectRepository.MessagingServicePage;
import org.openmetadata.catalog.selenium.properties.Property;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.TimeoutException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.Assert;
@Slf4j
@Order(11)
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
class MessagingServicePageTest {
@ -43,7 +48,6 @@ class MessagingServicePageTest {
static String url = Property.getInstance().getURL();
static Faker faker = new Faker();
static String serviceName = faker.name().firstName();
static String enterDescription = "//div[@data-testid='enterDescription']/div/div[2]/div/div/div/div/div/div";
static Actions actions;
static WebDriverWait wait;
Integer waitTime = Property.getInstance().getSleepTime();
@ -105,7 +109,22 @@ class MessagingServicePageTest {
Events.sendKeys(
webDriver, messagingServicePage.messagingServiceBootstrapServers(), "localhost:8080, localhost:9092");
Events.sendKeys(webDriver, messagingServicePage.messagingServiceSchemaRegistry(), "https://localhost:8081");
Events.click(webDriver, common.saveManage());
Events.click(webDriver, common.saveServiceButton());
Thread.sleep(waitTime);
Events.click(webDriver, common.addIngestion());
Events.click(webDriver, common.nextButton());
Events.click(webDriver, common.deployButton());
Events.click(webDriver, common.headerSettings());
Events.click(webDriver, common.headerSettingsMenu("Services"));
Events.click(webDriver, common.selectServiceTab(2));
Thread.sleep(waitTime);
try {
if (webDriver.getPageSource().contains(serviceName)) {
LOG.info("Success");
}
} catch (NoSuchElementException | TimeoutException r) {
Assert.fail("Service not added");
}
}
@Test
@ -117,15 +136,31 @@ class MessagingServicePageTest {
Events.click(webDriver, common.connectionConfig());
Events.sendKeys(webDriver, messagingServicePage.messagingServiceBootstrapServers(), "test");
Events.sendKeys(webDriver, messagingServicePage.messagingServiceSchemaRegistry(), "test");
Events.click(webDriver, common.saveConnectionConfig());
Events.click(webDriver, common.saveServiceButton());
}
@Test
@Order(5)
void deleteMessagingService() throws InterruptedException {
openMessagingServicePage();
Events.click(webDriver, common.containsText(serviceName));
Events.click(webDriver, common.ingestion());
Events.click(webDriver, messagingServicePage.deleteIngestion());
Events.sendKeys(webDriver, messagingServicePage.confirmationDeleteText(), "DELETE");
Events.click(webDriver, common.confirmButton());
Events.click(webDriver, common.headerSettings()); // Setting
Events.click(webDriver, common.headerSettingsServices());
Events.click(webDriver, common.selectServiceTab(2));
Events.click(webDriver, common.deleteServiceButton(serviceName));
Events.click(webDriver, common.saveEditedService());
Thread.sleep(waitTime);
try {
if (webDriver.findElement(common.containsText(serviceName)).isDisplayed()) {
Assert.fail("Service not deleted");
}
} catch (NoSuchElementException | TimeoutException e) {
LOG.info("Success");
}
}
@AfterEach

View File

@ -17,6 +17,7 @@ import com.github.javafaker.Faker;
import java.time.Duration;
import java.util.ArrayList;
import java.util.List;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.MethodOrderer;
@ -27,13 +28,17 @@ import org.openmetadata.catalog.selenium.events.Events;
import org.openmetadata.catalog.selenium.objectRepository.Common;
import org.openmetadata.catalog.selenium.objectRepository.PipelineServicePage;
import org.openmetadata.catalog.selenium.properties.Property;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.TimeoutException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.Assert;
@Slf4j
@Order(10)
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
class PipelineServiceTestPage {
@ -98,7 +103,19 @@ class PipelineServiceTestPage {
Events.sendEnter(webDriver, common.focusedDescriptionBox());
Events.click(webDriver, common.nextButton());
Events.sendKeys(webDriver, pipelineServicePage.pipelineServiceUrl(), "localhost:8080");
Events.click(webDriver, common.saveManage());
Events.click(webDriver, common.saveServiceButton());
Thread.sleep(waitTime);
Events.click(webDriver, common.headerSettings());
Events.click(webDriver, common.headerSettingsMenu("Services"));
Events.click(webDriver, common.selectServiceTab(4));
Thread.sleep(waitTime);
try {
if (webDriver.getPageSource().contains(serviceName)) {
LOG.info("Success");
}
} catch (NoSuchElementException | TimeoutException r) {
Assert.fail("Service not added");
}
}
@Test
@ -119,7 +136,7 @@ class PipelineServiceTestPage {
Events.click(webDriver, common.containsText(serviceName));
Events.click(webDriver, common.connectionConfig());
Events.sendKeys(webDriver, pipelineServicePage.pipelineServiceUrl(), "test");
Events.click(webDriver, common.saveConnectionConfig());
Events.click(webDriver, common.saveServiceButton());
}
@Test
@ -128,6 +145,14 @@ class PipelineServiceTestPage {
openPipelineServicePage();
Events.click(webDriver, common.deleteServiceButton(serviceName));
Events.click(webDriver, common.saveEditedService());
Thread.sleep(waitTime);
try {
if (webDriver.findElement(common.containsText(serviceName)).isDisplayed()) {
Assert.fail("Service not deleted");
}
} catch (NoSuchElementException | TimeoutException e) {
LOG.info("Success");
}
}
@AfterEach

View File

@ -136,7 +136,7 @@ class RolesPageTest {
@Order(5)
void editRule() throws InterruptedException {
openRolesPage();
Events.click(webDriver, common.containsText(roleDisplayName));
Events.click(webDriver, common.containsText("Data Steward"));
Events.click(webDriver, rolesPage.editRuleButton());
Events.click(webDriver, rolesPage.listAccess());
Events.click(webDriver, rolesPage.selectAccess("deny"));
@ -162,7 +162,7 @@ class RolesPageTest {
Events.click(webDriver, rolesPage.addRoleButton());
actions.moveToElement(webDriver.findElement(rolesPage.policiesDropdown())).perform();
Events.click(webDriver, rolesPage.policiesDropdown());
Events.click(webDriver, common.containsText("Data Steward Policy"));
Events.click(webDriver, rolesPage.listItem());
Events.sendKeys(webDriver, common.displayName(), "");
Events.sendKeys(webDriver, rolesPage.rolesDisplayName(), roleDisplayName);
Events.click(webDriver, common.descriptionBoldButton());
@ -184,7 +184,7 @@ class RolesPageTest {
Events.click(webDriver, rolesPage.addRoleButton());
actions.moveToElement(webDriver.findElement(rolesPage.policiesDropdown())).perform();
Events.click(webDriver, rolesPage.policiesDropdown());
Events.click(webDriver, common.containsText("Data Steward Policy"));
Events.click(webDriver, rolesPage.listItem());
Events.sendKeys(webDriver, common.displayName(), faker.name().firstName());
Events.sendKeys(webDriver, rolesPage.rolesDisplayName(), "");
Events.click(webDriver, common.descriptionBoldButton());
@ -207,7 +207,7 @@ class RolesPageTest {
Events.click(webDriver, rolesPage.addRoleButton());
actions.moveToElement(webDriver.findElement(rolesPage.policiesDropdown())).perform();
Events.click(webDriver, rolesPage.policiesDropdown());
Events.click(webDriver, common.containsText("Data Steward Policy"));
Events.click(webDriver, rolesPage.listItem());
Events.sendKeys(webDriver, common.displayName(), firstName);
Events.sendKeys(webDriver, rolesPage.rolesDisplayName(), roleDisplayName);
Events.click(webDriver, common.descriptionBox());
@ -218,7 +218,7 @@ class RolesPageTest {
Events.click(webDriver, rolesPage.addRoleButton());
actions.moveToElement(webDriver.findElement(rolesPage.policiesDropdown())).perform();
Events.click(webDriver, rolesPage.policiesDropdown());
Events.click(webDriver, common.containsText("Data Steward Policy"));
Events.click(webDriver, rolesPage.listItem());
Events.sendKeys(webDriver, common.displayName(), firstName);
Events.sendKeys(webDriver, rolesPage.rolesDisplayName(), roleDisplayName);
Events.click(webDriver, common.descriptionBox());