diff --git a/.github/workflows/selenium-tests.yml b/.github/workflows/selenium-tests.yml index 4e563b69463..8573826ddc3 100644 --- a/.github/workflows/selenium-tests.yml +++ b/.github/workflows/selenium-tests.yml @@ -22,6 +22,9 @@ jobs: java-version: '11' distribution: 'adopt' + - name: Generating Data Models + run: make install_dev generate + - name: Start Server and Ingest Sample Data run: ./docker/run_local_docker.sh diff --git a/catalog-rest-service/src/main/resources/ui/src/components/Ingestion/Ingestion.component.tsx b/catalog-rest-service/src/main/resources/ui/src/components/Ingestion/Ingestion.component.tsx index 75604b8646e..5ebfdb4fade 100644 --- a/catalog-rest-service/src/main/resources/ui/src/components/Ingestion/Ingestion.component.tsx +++ b/catalog-rest-service/src/main/resources/ui/src/components/Ingestion/Ingestion.component.tsx @@ -327,6 +327,7 @@ const Ingestion: React.FC = ({
handleTriggerIngestion( ingestion.id as string, @@ -345,6 +346,7 @@ const Ingestion: React.FC = ({
handleUpdate(ingestion)}> {updateSelection.id === ingestion.id ? ( updateSelection.state === 'success' ? ( @@ -358,6 +360,7 @@ const Ingestion: React.FC = ({
ConfirmDelete( ingestion.id as string, diff --git a/catalog-rest-service/src/main/resources/ui/src/components/IngestionModal/IngestionModal.component.tsx b/catalog-rest-service/src/main/resources/ui/src/components/IngestionModal/IngestionModal.component.tsx index 37207785886..63f05845146 100644 --- a/catalog-rest-service/src/main/resources/ui/src/components/IngestionModal/IngestionModal.component.tsx +++ b/catalog-rest-service/src/main/resources/ui/src/components/IngestionModal/IngestionModal.component.tsx @@ -446,6 +446,7 @@ const IngestionModal: React.FC = ({ = ({ = ({ tabs = new ArrayList<>(webDriver.getWindowHandles()); + String originalHandle = webDriver.getWindowHandle(); + for (String handle : webDriver.getWindowHandles()) { + if (!handle.equals(originalHandle)) { + webDriver.switchTo().window(handle); + webDriver.close(); + } + } + webDriver.switchTo().window(tabs.get(0)).close(); + } +} diff --git a/catalog-rest-service/src/test/java/org/openmetadata/catalog/selenium/pages/myData/MyDataPageTest.java b/catalog-rest-service/src/test/java/org/openmetadata/catalog/selenium/pages/myData/MyDataPageTest.java index 857505e230f..2599fd0e64e 100644 --- a/catalog-rest-service/src/test/java/org/openmetadata/catalog/selenium/pages/myData/MyDataPageTest.java +++ b/catalog-rest-service/src/test/java/org/openmetadata/catalog/selenium/pages/myData/MyDataPageTest.java @@ -16,6 +16,10 @@ package org.openmetadata.catalog.selenium.pages.myData; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; import org.openmetadata.catalog.selenium.events.Events; import org.openmetadata.catalog.selenium.properties.Property; import org.openqa.selenium.By; @@ -25,130 +29,127 @@ 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.WebDriverWait; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.Order; import java.time.Duration; import java.util.ArrayList; public class MyDataPageTest { - static WebDriver webDriver; - static String url = Property.getInstance().getURL(); - Integer waitTime = Property.getInstance().getSleepTime(); - static Actions actions; - static WebDriverWait wait; + static WebDriver webDriver; + static String url = Property.getInstance().getURL(); + static Actions actions; + static WebDriverWait wait; + Integer waitTime = Property.getInstance().getSleepTime(); + + @BeforeEach + public void openMetadataWindow() { + System.setProperty("webdriver.chrome.driver", "src/test/resources/drivers/linux/chromedriver"); + ChromeOptions options = new ChromeOptions(); + options.addArguments("--headless"); + webDriver = new ChromeDriver(options); + actions = new Actions(webDriver); + wait = new WebDriverWait(webDriver, Duration.ofSeconds(30)); + webDriver.manage().window().maximize(); + webDriver.get(url); + } + + @Test + @Order(1) + public void checkWhatsNew() { + Events.click(webDriver, By.xpath("//ul[@class='slick-dots testid-dots-button']//li[2]")); // What's new page 2 + Events.click(webDriver, By.cssSelector("[data-testid='WhatsNewModalChangeLogs']")); // Change Logs + Events.click(webDriver, By.cssSelector("[data-testid='closeWhatsNew']")); // Close What's new + } + + @Test + @Order(2) + public void checkTabs() { + checkWhatsNew(); + Events.click(webDriver, By.cssSelector("[data-testid='tab'][id='myDataTab']")); // My Data + Events.click(webDriver, By.cssSelector("[data-testid='tab'][id='followingTab']")); // Following + } + + @Test + @Order(3) + public void checkOverview() throws InterruptedException { + checkWhatsNew(); + Events.click(webDriver, By.cssSelector("[data-testid='tables']")); // Tables + webDriver.navigate().back(); + Events.click(webDriver, By.cssSelector("[data-testid='topics']")); // Topics + webDriver.navigate().back(); + Events.click(webDriver, By.cssSelector("[data-testid='dashboards']")); // Dashboard + webDriver.navigate().back(); + Events.click(webDriver, By.cssSelector("[data-testid='pipelines']")); // Pipeline + webDriver.navigate().back(); + Events.click(webDriver, By.cssSelector("[data-testid='service']")); // Services + webDriver.navigate().back(); + Events.click(webDriver, By.cssSelector("[data-testid='ingestion']")); // Services + webDriver.navigate().back(); + Events.click(webDriver, By.cssSelector("[data-testid='user']")); // Users + webDriver.navigate().back(); + Events.click(webDriver, By.cssSelector("[data-testid='terms']")); // Teams + } + + @Test + @Order(4) + public void checkSearchBar() throws InterruptedException { + checkWhatsNew(); + wait.until(ExpectedConditions.elementToBeClickable( + webDriver.findElement(By.cssSelector("[id='searchBox']")))); // Search bar/dim + Events.sendKeys(webDriver, By.cssSelector("[id='searchBox']"), "dim"); // Search bar/dim + Thread.sleep(waitTime); + Events.click(webDriver, By.cssSelector("[data-testid='data-name']")); // Search bar/dim + } - @BeforeEach - public void openMetadataWindow() { - System.setProperty("webdriver.chrome.driver", "src/test/resources/drivers/linux/chromedriver"); - ChromeOptions options = new ChromeOptions(); - options.addArguments("--headless"); - webDriver = new ChromeDriver(options); - actions = new Actions(webDriver); - wait = new WebDriverWait(webDriver, Duration.ofSeconds(30)); - webDriver.manage().window().maximize(); - webDriver.get(url); - } - - @Test - @Order(1) - public void checkWhatsNew() { - Events.click(webDriver, By.xpath("//ul[@class='slick-dots testid-dots-button']//li[2]")); // What's new page 2 - Events.click(webDriver, By.cssSelector("[data-testid='WhatsNewModalChangeLogs']")); // Change Logs - Events.click(webDriver, By.cssSelector("[data-testid='closeWhatsNew']")); // Close What's new - } - - @Test - @Order(2) - public void checkTabs() { - checkWhatsNew(); - Events.click(webDriver, By.cssSelector("[data-testid='tab'][id='myDataTab']")); // My Data - Events.click(webDriver, By.cssSelector("[data-testid='tab'][id='followingTab']")); // Following - } - - @Test - @Order(3) - public void checkOverview() throws InterruptedException { - checkWhatsNew(); - Events.click(webDriver, By.cssSelector("[data-testid='tables']")); // Tables - webDriver.navigate().back(); - Events.click(webDriver, By.cssSelector("[data-testid='topics']")); // Topics - webDriver.navigate().back(); - Events.click(webDriver, By.cssSelector("[data-testid='dashboards']")); // Dashboard - webDriver.navigate().back(); - Events.click(webDriver, By.cssSelector("[data-testid='pipelines']")); // Pipeline - webDriver.navigate().back(); - Events.click(webDriver, By.cssSelector("[data-testid='service']")); // Services - webDriver.navigate().back(); - Events.click(webDriver, By.cssSelector("[data-testid='user']")); // Users - webDriver.navigate().back(); - Events.click(webDriver, By.cssSelector("[data-testid='terms']")); // Teams - } - - @Test - @Order(4) - public void checkSearchBar() throws InterruptedException { - checkWhatsNew(); - wait.until(ExpectedConditions.elementToBeClickable( - webDriver.findElement(By.cssSelector("[id='searchBox']")))); // Search bar/dim - Events.sendKeys(webDriver, By.cssSelector("[id='searchBox']"), "dim"); // Search bar/dim - Thread.sleep(waitTime); - Events.click(webDriver, By.cssSelector("[data-testid='data-name']")); // Search bar/dim - } - - - @Test - @Order(5) - public void checkHeaders() { - checkWhatsNew(); - ArrayList tabs = new ArrayList<>(webDriver.getWindowHandles()); - Events.click(webDriver, By.cssSelector("[data-testid='appbar-item'][id='explore']")); // Explore - webDriver.navigate().back(); - Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting - Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Teams']")); // Setting/Teams - webDriver.navigate().back(); - Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting - Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Tags']")); // Setting/Tags - webDriver.navigate().back(); - Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting - Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Services']")); // Setting/Services - Events.click(webDriver, By.cssSelector("[data-testid='whatsnew-modal']")); // What's New - checkWhatsNew(); - Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Need Help']")); - Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Docs']")); - webDriver.switchTo().window(tabs.get(0)); - - Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Need Help']")); - Events.click(webDriver, By.cssSelector("[data-testid='menu-item-API']")); - webDriver.navigate().back(); - - Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Need Help']")); - Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Slack']")); - webDriver.switchTo().window(tabs.get(0)); - } - - @Test - @Order(6) - public void checkLogout() { - checkWhatsNew(); - Events.click(webDriver, By.cssSelector("[data-testid='greeting-text']")); - Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Logout']")); - } - - @AfterEach - public void closeTabs() { - ArrayList tabs = new ArrayList<>(webDriver.getWindowHandles()); - String originalHandle = webDriver.getWindowHandle(); - for (String handle : webDriver.getWindowHandles()) { - if (!handle.equals(originalHandle)) { - webDriver.switchTo().window(handle); - webDriver.close(); - } - } - webDriver.switchTo().window(tabs.get(0)).close(); + @Test + @Order(5) + public void checkHeaders() { + checkWhatsNew(); + ArrayList tabs = new ArrayList<>(webDriver.getWindowHandles()); + Events.click(webDriver, By.cssSelector("[data-testid='appbar-item'][id='explore']")); // Explore + webDriver.navigate().back(); + Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting + Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Teams']")); // Setting/Teams + webDriver.navigate().back(); + Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting + Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Tags']")); // Setting/Tags + webDriver.navigate().back(); + Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting + Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Services']")); // Setting/Services + Events.click(webDriver, By.cssSelector("[data-testid='whatsnew-modal']")); // What's New + checkWhatsNew(); + Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Need Help']")); + Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Docs']")); + webDriver.switchTo().window(tabs.get(0)); + + Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Need Help']")); + Events.click(webDriver, By.cssSelector("[data-testid='menu-item-API']")); + webDriver.navigate().back(); + + Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Need Help']")); + Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Slack']")); + webDriver.switchTo().window(tabs.get(0)); + } + + @Test + @Order(6) + public void checkLogout() { + checkWhatsNew(); + Events.click(webDriver, By.cssSelector("[data-testid='greeting-text']")); + Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Logout']")); + } + + @AfterEach + public void closeTabs() { + ArrayList tabs = new ArrayList<>(webDriver.getWindowHandles()); + String originalHandle = webDriver.getWindowHandle(); + for (String handle : webDriver.getWindowHandles()) { + if (!handle.equals(originalHandle)) { + webDriver.switchTo().window(handle); + webDriver.close(); + } } + webDriver.switchTo().window(tabs.get(0)).close(); + } } diff --git a/catalog-rest-service/src/test/java/org/openmetadata/catalog/selenium/pages/topicDetails/TopicDetailsPageTest.java b/catalog-rest-service/src/test/java/org/openmetadata/catalog/selenium/pages/topicDetails/TopicDetailsPageTest.java index bc8e0a81893..27f68fe305f 100644 --- a/catalog-rest-service/src/test/java/org/openmetadata/catalog/selenium/pages/topicDetails/TopicDetailsPageTest.java +++ b/catalog-rest-service/src/test/java/org/openmetadata/catalog/selenium/pages/topicDetails/TopicDetailsPageTest.java @@ -111,6 +111,7 @@ public class TopicDetailsPageTest { } Events.click(webDriver, By.cssSelector("[data-testid='saveAssociatedTag']")); Events.click(webDriver, By.cssSelector("[data-testid='appbar-item'][id='explore']")); // Explore + Events.click(webDriver, By.xpath("(//button[@data-testid='tab'])[2]")); // Topics Events.click(webDriver, By.cssSelector("[data-testid='checkbox'][id='PersonalData.Personal']")); }