mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-12-05 03:54:23 +00:00
revamped database service listing page (#2534)
This commit is contained in:
parent
b468a189f6
commit
22b31f4618
@ -1624,6 +1624,7 @@ export const AddServiceModal: FunctionComponent<Props> = ({
|
||||
'tw-border-primary': service === selectService,
|
||||
}
|
||||
)}
|
||||
data-testid={service}
|
||||
key={service}
|
||||
onClick={() => handleServiceClick(service)}>
|
||||
<div className="tw-flex tw-items-center">
|
||||
|
||||
@ -0,0 +1,114 @@
|
||||
package org.openmetadata.catalog.selenium.objectRepository;
|
||||
|
||||
import org.openqa.selenium.By;
|
||||
import org.openqa.selenium.WebDriver;
|
||||
|
||||
public class DatabaseServicePage {
|
||||
WebDriver webDriver;
|
||||
|
||||
public DatabaseServicePage(WebDriver webDriver) {
|
||||
this.webDriver = webDriver;
|
||||
}
|
||||
|
||||
By headerSettingsServices = By.cssSelector("[data-testid='menu-item-Services']");
|
||||
By noServicesAddServiceButton = By.cssSelector("[data-testid='add-new-user-button']");
|
||||
By addServiceButton = By.cssSelector("[data-testid='add-service-button']");
|
||||
By serviceName = By.cssSelector("[data-testid='name']");
|
||||
By serviceUrl = By.cssSelector("[data-testid='url']");
|
||||
By servicePort = By.cssSelector("[data-testid='port']");
|
||||
By serviceUsername = By.cssSelector("[name='username']");
|
||||
By servicePassword = By.cssSelector("[name='password']");
|
||||
By databaseName = By.cssSelector("[data-testid='database']");
|
||||
By nextButton = By.cssSelector("[data-testid='next-button']");
|
||||
By saveServiceButton = By.cssSelector("[data-testid='deploy-button']");
|
||||
By saveEditedService = By.cssSelector("[data-testid='save-button']");
|
||||
By runIngestion = By.cssSelector("[data-testid='run']");
|
||||
By editIngestion = By.cssSelector("[data-testid='edit']");
|
||||
By deleteIngestion = By.cssSelector("[data-testid='delete']");
|
||||
By saveConnectionConfig = By.cssSelector("[data-testid='saveManageTab']");
|
||||
By selectInterval = By.xpath("//select[@id='ingestionType']");
|
||||
|
||||
public By headerSettingsServices() {
|
||||
return headerSettingsServices;
|
||||
}
|
||||
|
||||
public By addServiceButton() {
|
||||
return addServiceButton;
|
||||
}
|
||||
|
||||
public By noServicesAddServiceButton() {
|
||||
return noServicesAddServiceButton;
|
||||
}
|
||||
|
||||
public By serviceType(String serviceType) {
|
||||
return By.cssSelector("[data-testid='" + serviceType + "']");
|
||||
}
|
||||
|
||||
public By serviceName() {
|
||||
return serviceName;
|
||||
}
|
||||
|
||||
public By servicePort() {
|
||||
return servicePort;
|
||||
}
|
||||
|
||||
public By serviceUsername() {
|
||||
return serviceUsername;
|
||||
}
|
||||
|
||||
public By servicePassword() {
|
||||
return servicePassword;
|
||||
}
|
||||
|
||||
public By serviceUrl() {
|
||||
return serviceUrl;
|
||||
}
|
||||
|
||||
public By databaseName() {
|
||||
return databaseName;
|
||||
}
|
||||
|
||||
public By nextButton() {
|
||||
return nextButton;
|
||||
}
|
||||
|
||||
public By saveServiceButton() {
|
||||
return saveServiceButton;
|
||||
}
|
||||
|
||||
public By deleteServiceButton(String serviceName) {
|
||||
return By.cssSelector("[data-testid='delete-service-" + serviceName + "']");
|
||||
}
|
||||
|
||||
public By saveEditedService() {
|
||||
return saveEditedService;
|
||||
}
|
||||
|
||||
public By serviceDetailsTabs(String tab) {
|
||||
return By.cssSelector("[data-testid='tab'][id='" + tab + "']");
|
||||
}
|
||||
|
||||
public By runIngestion() {
|
||||
return runIngestion;
|
||||
}
|
||||
|
||||
public By editIngestion() {
|
||||
return editIngestion;
|
||||
}
|
||||
|
||||
public By deleteIngestion() {
|
||||
return deleteIngestion;
|
||||
}
|
||||
|
||||
public By selectInterval() {
|
||||
return selectInterval;
|
||||
}
|
||||
|
||||
public By ingestionInterval(String interval) {
|
||||
return By.xpath("//select[@id='ingestionType']/option[@value='" + interval + "']");
|
||||
}
|
||||
|
||||
public By saveConnectionConfig() {
|
||||
return saveConnectionConfig;
|
||||
}
|
||||
}
|
||||
@ -24,8 +24,9 @@ import org.junit.jupiter.api.Order;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.TestMethodOrder;
|
||||
import org.openmetadata.catalog.selenium.events.Events;
|
||||
import org.openmetadata.catalog.selenium.objectRepository.DatabaseServicePage;
|
||||
import org.openmetadata.catalog.selenium.objectRepository.TagsPage;
|
||||
import org.openmetadata.catalog.selenium.properties.Property;
|
||||
import org.openqa.selenium.By;
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.chrome.ChromeDriver;
|
||||
@ -38,10 +39,11 @@ import org.openqa.selenium.support.ui.WebDriverWait;
|
||||
public class DatabaseServicePageTest {
|
||||
|
||||
static WebDriver webDriver;
|
||||
static TagsPage tagsPage;
|
||||
static DatabaseServicePage databaseServicePage;
|
||||
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();
|
||||
@ -52,6 +54,8 @@ public class DatabaseServicePageTest {
|
||||
ChromeOptions options = new ChromeOptions();
|
||||
options.addArguments("--headless");
|
||||
webDriver = new ChromeDriver(options);
|
||||
tagsPage = new TagsPage(webDriver);
|
||||
databaseServicePage = new DatabaseServicePage(webDriver);
|
||||
actions = new Actions(webDriver);
|
||||
wait = new WebDriverWait(webDriver, Duration.ofSeconds(30));
|
||||
webDriver.manage().window().maximize();
|
||||
@ -61,10 +65,10 @@ public class DatabaseServicePageTest {
|
||||
@Test
|
||||
@Order(1)
|
||||
public void openDatabaseServicePage() throws InterruptedException {
|
||||
Events.click(webDriver, By.cssSelector("[data-testid='closeWhatsNew']")); // Close What's new
|
||||
Events.click(webDriver, tagsPage.closeWhatsNew()); // Close What's new
|
||||
Thread.sleep(waitTime);
|
||||
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, tagsPage.headerSettings()); // Setting
|
||||
Events.click(webDriver, databaseServicePage.headerSettingsServices()); // Setting/Services
|
||||
Thread.sleep(waitTime);
|
||||
}
|
||||
|
||||
@ -72,64 +76,79 @@ public class DatabaseServicePageTest {
|
||||
@Order(2)
|
||||
public void addDatabaseService() throws InterruptedException {
|
||||
openDatabaseServicePage();
|
||||
Thread.sleep(2000);
|
||||
List<WebElement> webElementList = webDriver.findElements(By.cssSelector("[data-testid='add-new-user-button']"));
|
||||
List<WebElement> webElementList = webDriver.findElements(databaseServicePage.addServiceButton());
|
||||
if (webElementList.isEmpty()) {
|
||||
Events.click(webDriver, By.cssSelector("[data-testid='add-service-button']"));
|
||||
Events.click(webDriver, databaseServicePage.noServicesAddServiceButton());
|
||||
} else {
|
||||
Events.click(webDriver, By.cssSelector("[data-testid='add-new-user-button']"));
|
||||
Events.click(webDriver, databaseServicePage.addServiceButton());
|
||||
}
|
||||
Events.click(webDriver, By.cssSelector("[data-testid='selectService']"));
|
||||
Events.click(webDriver, By.cssSelector("[value='MySQL']"));
|
||||
Events.sendKeys(webDriver, By.cssSelector("[data-testid='name']"), serviceName);
|
||||
Events.sendKeys(webDriver, By.cssSelector("[data-testid='url']"), "localhost:3306");
|
||||
Events.sendKeys(webDriver, By.cssSelector("[data-testid='database']"), "openmetadata_db");
|
||||
|
||||
Events.click(webDriver, By.cssSelector("[data-testid='boldButton']"));
|
||||
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString());
|
||||
Events.click(webDriver, By.xpath(enterDescription));
|
||||
Events.sendEnter(webDriver, By.xpath(enterDescription));
|
||||
Events.click(webDriver, By.cssSelector("[data-testid='italicButton']"));
|
||||
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString());
|
||||
Events.click(webDriver, By.xpath(enterDescription));
|
||||
Events.sendEnter(webDriver, By.xpath(enterDescription));
|
||||
Events.click(webDriver, By.cssSelector("[data-testid='linkButton']"));
|
||||
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString());
|
||||
Events.click(webDriver, By.cssSelector("[data-testid='save-button']"));
|
||||
Events.click(webDriver, databaseServicePage.serviceType("MySQL"));
|
||||
Events.click(webDriver, databaseServicePage.nextButton());
|
||||
Events.sendKeys(webDriver, databaseServicePage.serviceName(), serviceName);
|
||||
Events.click(webDriver, tagsPage.descriptionBoldButton());
|
||||
Events.sendKeys(webDriver, tagsPage.addDescriptionString(), faker.address().toString());
|
||||
Events.click(webDriver, tagsPage.addDescriptionString());
|
||||
Events.sendEnter(webDriver, tagsPage.addDescriptionString());
|
||||
Events.click(webDriver, tagsPage.descriptionItalicButton());
|
||||
Events.sendKeys(webDriver, tagsPage.addDescriptionString(), faker.address().toString());
|
||||
Events.click(webDriver, tagsPage.addDescriptionString());
|
||||
Events.sendEnter(webDriver, tagsPage.addDescriptionString());
|
||||
Events.click(webDriver, tagsPage.descriptionLinkButton());
|
||||
Events.sendKeys(webDriver, tagsPage.addDescriptionString(), faker.address().toString());
|
||||
Events.click(webDriver, databaseServicePage.nextButton());
|
||||
Events.sendKeys(webDriver, databaseServicePage.serviceUrl(), "localhost");
|
||||
Events.sendKeys(webDriver, databaseServicePage.servicePort(), "3306");
|
||||
Events.sendKeys(webDriver, databaseServicePage.serviceUsername(), "openmetadata_user");
|
||||
Events.sendKeys(webDriver, databaseServicePage.servicePassword(), "openmetadata_password");
|
||||
Events.sendKeys(webDriver, databaseServicePage.databaseName(), "openmetadata_db");
|
||||
Events.click(webDriver, databaseServicePage.nextButton());
|
||||
Events.click(webDriver, databaseServicePage.nextButton());
|
||||
Events.click(webDriver, databaseServicePage.saveServiceButton());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(3)
|
||||
public void editDatabaseService() throws InterruptedException {
|
||||
public void checkDatabaseServiceDetails() throws InterruptedException {
|
||||
openDatabaseServicePage();
|
||||
Thread.sleep(2000);
|
||||
Events.click(webDriver, By.cssSelector("[data-testid='edit-service-" + serviceName + "']"));
|
||||
Events.click(webDriver, By.xpath(enterDescription));
|
||||
Events.sendEnter(webDriver, By.xpath(enterDescription));
|
||||
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString());
|
||||
Events.click(webDriver, By.cssSelector("[data-testid='save-button']"));
|
||||
Events.click(webDriver, tagsPage.containsText(serviceName));
|
||||
Events.click(webDriver, tagsPage.editTagCategoryDescription());
|
||||
Events.click(webDriver, tagsPage.addDescriptionString());
|
||||
Events.sendKeys(webDriver, tagsPage.addDescriptionString(), faker.address().toString());
|
||||
Events.click(webDriver, tagsPage.editDescriptionSaveButton());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(4)
|
||||
public void checkDatabaseServiceDetails() throws InterruptedException {
|
||||
public void checkIngestionTab() throws InterruptedException {
|
||||
openDatabaseServicePage();
|
||||
Thread.sleep(2000);
|
||||
Events.click(webDriver, By.cssSelector("[data-testid='service-name-" + serviceName + "']"));
|
||||
Thread.sleep(waitTime);
|
||||
Events.click(webDriver, By.cssSelector("[data-testid='edit-description']"));
|
||||
Events.click(webDriver, By.xpath(enterDescription));
|
||||
Events.sendEnter(webDriver, By.xpath(enterDescription));
|
||||
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString());
|
||||
Events.click(webDriver, By.cssSelector("[data-testid='save']"));
|
||||
Events.click(webDriver, tagsPage.containsText("Demo1"));
|
||||
Events.click(webDriver, databaseServicePage.serviceDetailsTabs("ingestions"));
|
||||
Events.click(webDriver, databaseServicePage.runIngestion()); // run ingestion
|
||||
|
||||
Events.click(webDriver, databaseServicePage.editIngestion()); // edit ingestion
|
||||
Events.click(webDriver, databaseServicePage.nextButton());
|
||||
Events.click(webDriver, databaseServicePage.selectInterval());
|
||||
Events.click(webDriver, databaseServicePage.ingestionInterval("day"));
|
||||
Events.click(webDriver, databaseServicePage.nextButton());
|
||||
Events.click(webDriver, databaseServicePage.saveServiceButton());
|
||||
|
||||
Events.click(webDriver, databaseServicePage.deleteIngestion()); // delete ingestion
|
||||
Events.click(webDriver, databaseServicePage.saveEditedService());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(5)
|
||||
public void searchDatabaseService() throws InterruptedException {
|
||||
public void checkConnectionConfigTab() throws InterruptedException {
|
||||
openDatabaseServicePage();
|
||||
Thread.sleep(2000);
|
||||
Events.click(webDriver, By.cssSelector("[data-testid='service-name-" + serviceName + "']"));
|
||||
Events.click(webDriver, tagsPage.containsText(serviceName));
|
||||
Events.click(webDriver, databaseServicePage.serviceDetailsTabs("connectionConfig"));
|
||||
Events.sendKeys(webDriver, databaseServicePage.serviceUsername(), "1");
|
||||
Events.sendKeys(webDriver, databaseServicePage.servicePassword(), "1");
|
||||
Events.sendKeys(webDriver, databaseServicePage.databaseName(), "1");
|
||||
Events.click(webDriver, databaseServicePage.saveConnectionConfig());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -137,8 +156,8 @@ public class DatabaseServicePageTest {
|
||||
public void deleteDatabaseService() throws InterruptedException {
|
||||
openDatabaseServicePage();
|
||||
Thread.sleep(2000);
|
||||
Events.click(webDriver, By.cssSelector("[data-testid='delete-service-" + serviceName + "']"));
|
||||
Events.click(webDriver, By.cssSelector("[data-testid='save-button']"));
|
||||
Events.click(webDriver, databaseServicePage.deleteServiceButton(serviceName));
|
||||
Events.click(webDriver, databaseServicePage.saveEditedService());
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user