mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-08-22 16:08:13 +00:00
Selenium fixes (#4495)
* Minor code change * Roles and Exception handling fix * Error-fix for roles webooks and error handling * Webhooks failure * webhooks fix * Glossary page changes
This commit is contained in:
parent
f1da85036f
commit
c3589c0ac3
@ -26,6 +26,7 @@ public class RolesPage {
|
||||
By policiesDropdown = By.xpath("//div[@class=' css-tlfecz-indicatorContainer']");
|
||||
By listItem = By.xpath("//*[@id='react-select-2-listbox']");
|
||||
By descriptionContainer = By.cssSelector("[data-testid='viewer-container']");
|
||||
By ruleName = By.xpath("(//td[@class='tableBody-cell']/p)[1]");
|
||||
|
||||
public By selectOperation(String operation) {
|
||||
return By.cssSelector("[value='" + operation + "']");
|
||||
|
@ -12,7 +12,7 @@ public class Webhooks {
|
||||
@NotNull WebDriver webDriver;
|
||||
|
||||
By webhookLink = By.linkText("Webhooks");
|
||||
By addWebhook = By.cssSelector("[data-testid='add-webhook-button']");
|
||||
By addWebhook = By.xpath("//button[@data-testid='add-webhook-button']");
|
||||
By name = By.xpath("//input[@data-testid='name']");
|
||||
By descriptionBox = By.xpath("//div[@class='ProseMirror']");
|
||||
By focusedDescriptionBox = By.xpath("//div[@class='ProseMirror ProseMirror-focused']");
|
||||
@ -21,6 +21,7 @@ public class Webhooks {
|
||||
By entityCreatedMenu = By.xpath("(//button[@id='menu-button-select entities'])[1]");
|
||||
By allEntities = By.xpath("(//input[@type='checkbox'])[2]");
|
||||
By toast = By.xpath("(//div[@class='Toastify__toast-body']/div)[2]");
|
||||
By clickToCloseDropdown = By.cssSelector("[class='page-container-v1 tw-bg-body-main']");
|
||||
|
||||
public By checkWebhook(String webHookName) {
|
||||
return By.xpath("//button[@data-testid='webhook-link'][text()='" + webHookName + "']");
|
||||
|
@ -54,18 +54,19 @@ class WebhooksPageTest {
|
||||
|
||||
@Test
|
||||
@Order(1)
|
||||
void openWebHookPage() {
|
||||
void openWebHookPage() throws InterruptedException {
|
||||
Events.click(webDriver, common.closeWhatsNew()); // Close What's new
|
||||
Events.click(webDriver, common.headerSettings()); // Setting
|
||||
Events.click(webDriver, webhooks.webhookLink());
|
||||
Thread.sleep(waitTime);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(2)
|
||||
void addWebHook() throws InterruptedException {
|
||||
String name = faker.name().name();
|
||||
webDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
|
||||
openWebHookPage();
|
||||
Thread.sleep(waitTime);
|
||||
Events.click(webDriver, webhooks.addWebhook());
|
||||
Events.sendKeys(webDriver, webhooks.name(), name);
|
||||
Events.click(webDriver, webhooks.descriptionBox());
|
||||
@ -74,8 +75,7 @@ class WebhooksPageTest {
|
||||
Events.click(webDriver, webhooks.checkbox());
|
||||
Events.click(webDriver, webhooks.entityCreatedMenu());
|
||||
Events.click(webDriver, webhooks.allEntities());
|
||||
actions.click();
|
||||
actions.perform();
|
||||
Events.click(webDriver, webhooks.clickToCloseDropdown());
|
||||
Events.click(webDriver, common.saveWebhook());
|
||||
Thread.sleep(waitTime);
|
||||
WebElement checkName = wait.until(ExpectedConditions.presenceOfElementLocated(webhooks.checkWebhook(name)));
|
||||
@ -99,8 +99,7 @@ class WebhooksPageTest {
|
||||
Events.click(webDriver, webhooks.checkbox());
|
||||
Events.click(webDriver, webhooks.entityCreatedMenu());
|
||||
Events.click(webDriver, webhooks.allEntities());
|
||||
actions.click();
|
||||
actions.perform();
|
||||
Events.click(webDriver, webhooks.clickToCloseDropdown());
|
||||
Events.click(webDriver, common.saveWebhook());
|
||||
Thread.sleep(waitTime);
|
||||
}
|
||||
@ -123,8 +122,7 @@ class WebhooksPageTest {
|
||||
Thread.sleep(waitTime);
|
||||
Events.click(webDriver, webhooks.entityCreatedMenu());
|
||||
Events.click(webDriver, webhooks.allEntities());
|
||||
actions.click();
|
||||
actions.perform();
|
||||
Events.click(webDriver, webhooks.clickToCloseDropdown());
|
||||
Events.click(webDriver, common.saveWebhook());
|
||||
WebElement errorMessage = webDriver.findElement(common.errorMessage());
|
||||
Assert.assertTrue(errorMessage.isDisplayed());
|
||||
@ -133,7 +131,7 @@ class WebhooksPageTest {
|
||||
|
||||
@Test
|
||||
@Order(5)
|
||||
void checkBlankEndpoint() {
|
||||
void checkBlankEndpoint() throws InterruptedException {
|
||||
webDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
|
||||
openWebHookPage();
|
||||
Events.click(webDriver, webhooks.addWebhook());
|
||||
@ -144,8 +142,7 @@ class WebhooksPageTest {
|
||||
Events.click(webDriver, webhooks.checkbox());
|
||||
Events.click(webDriver, webhooks.entityCreatedMenu());
|
||||
Events.click(webDriver, webhooks.allEntities());
|
||||
actions.click();
|
||||
actions.perform();
|
||||
Events.click(webDriver, webhooks.clickToCloseDropdown());
|
||||
Events.click(webDriver, common.saveWebhook());
|
||||
WebElement errorMessage = webDriver.findElement(common.errorMessage());
|
||||
Assert.assertTrue(errorMessage.isDisplayed());
|
||||
@ -154,7 +151,7 @@ class WebhooksPageTest {
|
||||
|
||||
@Test
|
||||
@Order(6)
|
||||
void checkBlankEntityCheckbox() {
|
||||
void checkBlankEntityCheckbox() throws InterruptedException {
|
||||
webDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
|
||||
openWebHookPage();
|
||||
Events.click(webDriver, webhooks.addWebhook());
|
||||
|
@ -75,6 +75,7 @@ class UiExceptionHandling {
|
||||
webDriver = new ChromeDriver(options);
|
||||
common = new Common(webDriver);
|
||||
actions = new Actions(webDriver);
|
||||
databaseServicePage = new DatabaseServicePage(webDriver);
|
||||
wait = new WebDriverWait(webDriver, Duration.ofSeconds(30));
|
||||
webDriver.manage().window().maximize();
|
||||
webDriver.get(url);
|
||||
@ -129,7 +130,7 @@ class UiExceptionHandling {
|
||||
Events.click(webDriver, common.closeWhatsNew());
|
||||
Events.click(webDriver, common.headerSettings()); // Setting
|
||||
Events.click(webDriver, common.headerSettingsMenu("Services")); // Setting/Services
|
||||
Events.click(webDriver, common.containsText("Glue"));
|
||||
Events.click(webDriver, databaseServicePage.serviceName("sample_data"));
|
||||
Events.click(webDriver, common.editTagCategoryDescription());
|
||||
Events.sendKeys(webDriver, common.focusedDescriptionBox(), faker.address().toString());
|
||||
interceptor("services/databaseServices", "services/testing");
|
||||
@ -146,7 +147,7 @@ class UiExceptionHandling {
|
||||
Events.click(webDriver, common.containsText("Glue"));
|
||||
Events.click(webDriver, common.manage());
|
||||
Events.click(webDriver, databaseServicePage.deleteDatabase());
|
||||
Events.sendKeys(webDriver, databaseServicePage.confirmationDeleteText(), "Delete");
|
||||
Events.sendKeys(webDriver, databaseServicePage.confirmationDeleteText(), "DELETE");
|
||||
Events.click(webDriver, common.confirmButton());
|
||||
interceptor("services/databaseServices", "services/testing");
|
||||
// Assert.assertEquals(500, 500);
|
||||
|
@ -219,7 +219,7 @@ class Explore {
|
||||
// Adding description to check last updated sort
|
||||
Events.click(webDriver, common.selectTableLink(1));
|
||||
Events.click(webDriver, tableDetails.editDescriptionButton());
|
||||
Events.sendKeys(webDriver, common.focusedDescriptionBox(), Keys.COMMAND + "A");
|
||||
Events.sendKeys(webDriver, common.focusedDescriptionBox(), Keys.CONTROL + "A");
|
||||
Events.sendKeys(webDriver, common.focusedDescriptionBox(), sendKeys);
|
||||
Events.click(webDriver, tableDetails.saveTableDescription());
|
||||
Thread.sleep(2000);
|
||||
|
@ -122,19 +122,6 @@ class GlossaryPageTest {
|
||||
Assert.assertEquals(reviewerCount.toString(), "4");
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(5)
|
||||
void deleteGlossaryReviewer() throws InterruptedException {
|
||||
openGlossaryPage();
|
||||
Events.click(webDriver, common.containsText(glossaryName));
|
||||
Thread.sleep(waitTime);
|
||||
actions.moveToElement(webDriver.findElement(common.removeAssociatedTag())).perform();
|
||||
Events.click(webDriver, common.removeAssociatedTag());
|
||||
Thread.sleep(waitTime);
|
||||
Object reviewerCount = webDriver.findElements(common.reviewCount()).size();
|
||||
Assert.assertEquals(reviewerCount.toString(), "3");
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(6)
|
||||
void removeAddedTagsToGlossary() throws InterruptedException {
|
||||
@ -159,7 +146,7 @@ class GlossaryPageTest {
|
||||
openGlossaryPage();
|
||||
Events.click(webDriver, common.containsText(glossaryName));
|
||||
Events.click(webDriver, common.addGlossaryReviewer());
|
||||
for (int i = 1; i <= 3; i++) {
|
||||
for (int i = 1; i <= 4; i++) {
|
||||
Events.click(webDriver, glossary.checkboxAddUser(i));
|
||||
}
|
||||
Events.click(webDriver, common.descriptionSaveButton());
|
||||
@ -194,8 +181,6 @@ 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());
|
||||
@ -213,8 +198,6 @@ 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, common.manage());
|
||||
Events.click(webDriver, common.addGlossaryReviewer());
|
||||
@ -231,32 +214,15 @@ class GlossaryPageTest {
|
||||
Assert.assertEquals(reviewerCount.toString(), "3");
|
||||
}
|
||||
|
||||
@Test
|
||||
@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, common.manage());
|
||||
Thread.sleep(waitTime);
|
||||
actions.moveToElement(webDriver.findElement(common.removeAssociatedTag())).perform();
|
||||
Events.click(webDriver, common.removeAssociatedTag());
|
||||
Thread.sleep(waitTime);
|
||||
Object reviewerCount = webDriver.findElements(common.reviewCount()).size();
|
||||
Assert.assertEquals(reviewerCount.toString(), "2");
|
||||
}
|
||||
|
||||
@Test
|
||||
@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, common.manage());
|
||||
Thread.sleep(waitTime);
|
||||
actions.moveToElement(webDriver.findElement(common.removeAssociatedTag())).perform();
|
||||
for (int i = 1; i <= 2; i++) {
|
||||
for (int i = 1; i <= 3; i++) {
|
||||
Events.click(webDriver, common.removeAssociatedTag());
|
||||
Thread.sleep(waitTime);
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package org.openmetadata.catalog.selenium.pages.roles;
|
||||
import com.github.javafaker.Faker;
|
||||
import java.time.Duration;
|
||||
import java.util.ArrayList;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.MethodOrderer;
|
||||
@ -23,9 +24,11 @@ import org.openqa.selenium.chrome.ChromeDriver;
|
||||
import org.openqa.selenium.chrome.ChromeOptions;
|
||||
import org.openqa.selenium.interactions.Actions;
|
||||
import org.openqa.selenium.support.ui.ExpectedConditions;
|
||||
import org.openqa.selenium.support.ui.Select;
|
||||
import org.openqa.selenium.support.ui.WebDriverWait;
|
||||
import org.testng.Assert;
|
||||
|
||||
@Slf4j
|
||||
@Order(19)
|
||||
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
|
||||
class RolesPageTest {
|
||||
@ -118,8 +121,9 @@ class RolesPageTest {
|
||||
openRolesPage();
|
||||
Events.click(webDriver, common.containsText(roleDisplayName));
|
||||
Events.click(webDriver, rolesPage.addRule());
|
||||
Select se = new Select(webDriver.findElement(rolesPage.listOperation()));
|
||||
Events.click(webDriver, rolesPage.listOperation());
|
||||
Events.click(webDriver, rolesPage.selectOperation("UpdateDescription"));
|
||||
se.selectByVisibleText("Update Teams");
|
||||
Events.click(webDriver, rolesPage.listAccess());
|
||||
Events.click(webDriver, rolesPage.selectAccess("allow"));
|
||||
Events.click(webDriver, common.descriptionSaveButton());
|
||||
@ -136,11 +140,12 @@ class RolesPageTest {
|
||||
@Order(5)
|
||||
void editRule() throws InterruptedException {
|
||||
openRolesPage();
|
||||
Events.click(webDriver, common.containsText("Data Steward"));
|
||||
Events.click(webDriver, common.containsText("Data Consumer"));
|
||||
Events.click(webDriver, rolesPage.editRuleButton());
|
||||
Events.click(webDriver, rolesPage.listAccess());
|
||||
Events.click(webDriver, rolesPage.selectAccess("deny"));
|
||||
Select se = new Select(webDriver.findElement(rolesPage.listAccess()));
|
||||
se.selectByVisibleText("DENY");
|
||||
Events.click(webDriver, common.descriptionSaveButton());
|
||||
Thread.sleep(waitTime);
|
||||
String access = webDriver.findElement(rolesPage.accessValue()).getAttribute("innerHTML");
|
||||
Assert.assertEquals(access, "DENY");
|
||||
}
|
||||
@ -150,8 +155,18 @@ class RolesPageTest {
|
||||
void deleteRule() throws InterruptedException {
|
||||
openRolesPage();
|
||||
Events.click(webDriver, common.containsText(roleDisplayName));
|
||||
String ruleName = webDriver.findElement(rolesPage.ruleName()).getText();
|
||||
Events.click(webDriver, rolesPage.deleteRuleButton());
|
||||
Events.click(webDriver, common.saveEditedService());
|
||||
Thread.sleep(waitTime);
|
||||
webDriver.navigate().refresh();
|
||||
try {
|
||||
if (webDriver.findElement(common.containsText(ruleName)).isDisplayed()) {
|
||||
Assert.fail("Rule not deleted");
|
||||
}
|
||||
} catch (NoSuchElementException | TimeoutException e) {
|
||||
LOG.info("Success");
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -235,7 +250,7 @@ class RolesPageTest {
|
||||
@Test
|
||||
@Order(10)
|
||||
void addRuleWithoutOperation() throws InterruptedException {
|
||||
addRole();
|
||||
openRolesPage();
|
||||
Events.click(webDriver, common.containsText(roleDisplayName));
|
||||
Events.click(webDriver, rolesPage.addRule());
|
||||
Events.click(webDriver, rolesPage.listAccess());
|
||||
|
Loading…
x
Reference in New Issue
Block a user