rabbitmq-server/selenium/test/pageobjects/AdminTab.js

127 lines
4.2 KiB
JavaScript

const { By, Key, until, Builder } = require('selenium-webdriver')
const OverviewPage = require('./OverviewPage')
const SELECTED_ADMIN_TAB = By.css('div#menu ul#tabs li a.selected[href="#/users"]')
const ALL_USERS_SECTION = By.css('div#users-section')
const USER_LINK = By.css('div#menu ul#tabs li a[href="#/connections"]')
const FILTER_USER = By.css('input#users-name')
const CHECKBOX_REGEX = By.css('input#filter-regex-mode')
const FILTERED_USER = By.css('span.filter-highlight')
// RHM : RIGHT HAND MENU
const USERS_ON_RHM = By.css('div#rhs ul li a[href="#/users"]')
const VHOSTS_ON_RHM = By.css('div#rhs ul li a[href="#/vhosts"]')
const FEATURE_FLAGS_ON_RHM = By.css('div#rhs ul li a[href="#/feature-flags"]')
const POLICIES_ON_RHM = By.css('div#rhs ul li a[href="#/policies"]')
const LIMITS_ON_RHM = By.css('div#rhs ul li a[href="#/limits"]')
const CLUSTER_ON_RHM = By.css('div#rhs ul li a[href="#/cluster-name"]')
const FEDERATION_STATUS_ON_RHM = By.css('div#rhs ul li a[href="#/federation"]')
const FEDERATION_UPSTREAMS_ON_RHM = By.css('div#rhs ul li a[href="#/federation-upstreams"]')
const SHOVEL_STATUS_ON_RHM = By.css('div#rhs ul li a[href="#/shovels"]')
const SHOVEL_MANAGEMENT_ON_RHM = By.css('div#rhs ul li a[href="#/dynamic-shovels"]')
const TOP_PROCESSES_ON_RHM = By.css('div#rhs ul li a[href="#/top"]')
const TOP_ETS_ON_RHM = By.css('div#rhs ul li a[href="#/top/ets"]')
const TRACING_ON_RHM = By.css('div#rhs ul li a[href="#/traces"]')
module.exports = class AdminTab extends OverviewPage {
async isLoaded () {
await this.waitForDisplayed(SELECTED_ADMIN_TAB)
}
async waitForUsersMenuOption() {
return this.waitForDisplayed(USERS_ON_RHM)
}
async clickOnUsers() {
await this.click(USERS_ON_RHM)
}
async waitForLimitsMenuOption() {
return this.waitForDisplayed(LIMITS_ON_RHM)
}
async clickOnLimits() {
await this.click(LIMITS_ON_RHM)
}
async clickOnVhosts() {
await this.click(VHOSTS_ON_RHM)
}
async waitForVhostsMenuOption() {
return this.waitForDisplayed(VHOSTS_ON_RHM)
}
async clickOnPolicies() {
await this.click(POLICIES_ON_RHM)
}
async waitForPoliciesMenuOption(option) {
return this.waitForDisplayed(POLICIES_ON_RHM)
}
async clickOnFeatureFlags() {
await this.click(FEATURE_FLAGS_ON_RHM)
}
async waitForFeatureFlagsMenuOption() {
return this.waitForDisplayed(FEATURE_FLAGS_ON_RHM)
}
async clickOnCluster() {
await this.click(CLUSTER_ON_RHM)
}
async waitForClusterMenuOption(option) {
return this.waitForDisplayed(CLUSTER_ON_RHM)
}
async clickOnFederationStatus() {
await this.click(FEDERATION_STATUS_ON_RHM)
}
async waitForFederationStatusMenuOption() {
return this.waitForDisplayed(FEDERATION_STATUS_ON_RHM)
}
async clickOnFederationUpstreams() {
await this.click(FEDERATION_UPSTREAMS_ON_RHM)
}
async waitForFederationUpstreamsMenuOption() {
return this.waitForDisplayed(FEDERATION_UPSTREAMS_ON_RHM)
}
async clickOnShovelStatus() {
await this.click(SHOVEL_STATUS_ON_RHM)
}
async waitForShovelStatusMenuOption() {
return this.waitForDisplayed(SHOVEL_STATUS_ON_RHM)
}
async clickOnShovelManagement() {
await this.click(SHOVEL_MANAGEMENT_ON_RHM)
}
async waitForShovelManagementMenuOption() {
return this.waitForDisplayed(SHOVEL_MANAGEMENT_ON_RHM)
}
async clickOnTopProcesses() {
await this.click(TOP_PROCESSES_ON_RHM)
}
async waitForTopProcessesMenuOption() {
return this.waitForDisplayed(TOP_PROCESSES_ON_RHM)
}
async clickOnTopEtsTable() {
await this.click(TOP_ETS_ON_RHM)
}
async waitForTopEtsTableMenuOption() {
return this.waitForDisplayed(TOP_ETS_ON_RHM)
}
async clickOnTracing() {
await this.click(TRACING_ON_RHM)
}
async waitForTracingMenuOption() {
return this.waitForDisplayed(TRACING_ON_RHM)
}
async searchForUser(user, regex = false) {
const filtered_user = By.css('a[href="#/users/' + user + '"]')
await this.sendKeys(FILTER_USER, user)
await this.sendKeys(FILTER_USER, Key.RETURN)
if (regex) {
await this.click(CHECKBOX_REGEX)
}
await this.driver.sleep(250)
await this.waitForDisplayed(filtered_user)
return await this.driver.findElement(filtered_user) != undefined
}
}