keycloak-scim/js/apps/admin-ui/cypress/support/pages/admin-ui/Masthead.ts
Jon Koops 5eb7363ddd
Promote Account Console v3 to default and deprecate v2 (#25852)
Closes #19663

Signed-off-by: Jon Koops <jonkoops@gmail.com>
Co-authored-by: Martin Bartoš <mabartos@redhat.com>
2024-01-11 19:42:10 +01:00

138 lines
3.2 KiB
TypeScript

import CommonElements from "../CommonElements";
export default class Masthead extends CommonElements {
#logoBtn = ".pf-c-page__header-brand-link img";
#helpBtn = "#help";
#closeAlertMessageBtn = ".pf-c-alert__action button";
#closeLastAlertMessageBtn = "li:first-child .pf-c-alert__action button";
#alertMessage = ".pf-c-alert__title";
#userDrpDwn = "#user-dropdown";
#userDrpDwnKebab = "#user-dropdown-kebab";
#globalAlerts = "global-alerts";
#documentationLink = "#link";
#backToAdminConsoleLink = "referrer-link";
#userDrpdwnItem = ".pf-c-dropdown__menu-item";
#getAlertsContainer() {
return cy.findByTestId(this.#globalAlerts);
}
checkIsAdminUI() {
cy.get(this.#logoBtn).should("exist");
cy.get(this.#userDrpDwn).should("exist");
return this;
}
setMobileMode(isMobileMode: boolean) {
if (isMobileMode) {
cy.viewport("iphone-6");
} else {
cy.viewport(1024, 768);
}
}
toggleGlobalHelp() {
cy.get(this.#helpBtn).click();
cy.get("#enableHelp").click({ force: true });
}
toggleUsernameDropdown() {
this.userDropdown().click();
return this;
}
toggleMobileViewHelp() {
cy.get(this.#userDrpdwnItem).contains("Help").click();
return this;
}
clickRealmInfo() {
cy.get(this.#userDrpdwnItem).contains("Realm info").click();
return this;
}
clickGlobalHelp() {
cy.get(this.#helpBtn).click();
return this;
}
getDocumentationLink() {
return cy.get(this.#documentationLink);
}
clickDocumentationLink() {
this.getDocumentationLink()
.find("a")
.invoke("removeAttr", "target")
.click();
return this;
}
goToAdminConsole() {
cy.findByTestId(this.#backToAdminConsoleLink).click({ force: true });
return this;
}
userDropdown() {
return cy
.document()
.then(({ documentElement }) => documentElement.getBoundingClientRect())
.then(({ width }) =>
cy.get(width < 1024 ? this.#userDrpDwnKebab : this.#userDrpDwn),
);
}
signOut() {
this.toggleUsernameDropdown();
cy.get("#sign-out").click();
Cypress.session.clearAllSavedSessions();
}
accountManagement() {
this.toggleUsernameDropdown();
cy.get("#manage-account").click();
}
checkNotificationMessage(message: string, closeNotification = true) {
this.#getAlertsContainer()
.find(this.#alertMessage)
.should("contain.text", message);
if (closeNotification) {
this.#getAlertsContainer()
.find(`button[title="` + message.replaceAll('"', '\\"') + `"]`)
.last()
.click({ force: true });
}
return this;
}
closeLastAlertMessage() {
this.#getAlertsContainer().find(this.#closeLastAlertMessageBtn).click();
return this;
}
closeAllAlertMessages() {
this.#getAlertsContainer().find(this.#closeAlertMessageBtn).click({
force: true,
multiple: true,
});
return this;
}
assertIsDesktopView() {
cy.get(this.#userDrpDwn).should("be.visible");
cy.get(this.#userDrpDwnKebab).should("not.be.visible");
return this;
}
assertIsMobileView() {
cy.get(this.#userDrpDwn).should("not.be.visible");
cy.get(this.#userDrpDwnKebab).should("be.visible");
return this;
}
}