diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/RolesPage.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/RolesPage.java index 739893a6e8a..093be82995f 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/RolesPage.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/RolesPage.java @@ -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 + "']"); diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/Webhooks.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/Webhooks.java index b14f3bc5f1b..c88bba34e1d 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/Webhooks.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/Webhooks.java @@ -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 + "']"); diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/Webhooks/WebhooksPageTest.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/Webhooks/WebhooksPageTest.java index 70b05450a96..e7aad424948 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/Webhooks/WebhooksPageTest.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/Webhooks/WebhooksPageTest.java @@ -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()); diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/common/UiExceptionHandling.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/common/UiExceptionHandling.java index cdd5b52b58e..2fccd12ce50 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/common/UiExceptionHandling.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/common/UiExceptionHandling.java @@ -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); diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/explore/Explore.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/explore/Explore.java index c242433dbfd..548c4d23e61 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/explore/Explore.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/explore/Explore.java @@ -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); diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/glossary/GlossaryPageTest.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/glossary/GlossaryPageTest.java index 7eaa3be30f6..7991084633e 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/glossary/GlossaryPageTest.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/glossary/GlossaryPageTest.java @@ -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); } diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/roles/RolesPageTest.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/roles/RolesPageTest.java index be818df1f61..b18ddc2b438 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/roles/RolesPageTest.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/roles/RolesPageTest.java @@ -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());