import { BasePage } from '../base'; export class MainSidebar extends BasePage { getters = { menuItem: (menuLabel: string) => cy.getByTestId('menu-item').filter(`:contains("${menuLabel}")`), settings: () => this.getters.menuItem('Settings'), templates: () => this.getters.menuItem('Templates'), workflows: () => this.getters.menuItem('Workflows'), credentials: () => this.getters.menuItem('Credentials'), executions: () => this.getters.menuItem('Executions'), userMenu: () => cy.getByTestId('main-sidebar-user-menu'), }; actions = { goToSettings: () => { this.getters.settings().should('be.visible'); // We must wait before ElementUI menu is done with its animations cy.get('[data-old-overflow]').should('not.exist'); this.getters.settings().click(); }, goToCredentials: () => { this.getters.credentials().should('be.visible'); cy.get('[data-old-overflow]').should('not.exist'); this.getters.credentials().click(); }, openUserMenu: () => { this.getters.userMenu().find('[role="button"]').last().click(); }, signout: () => { this.actions.openUserMenu(); cy.getByTestId('workflow-menu-item-logout').click(); }, }; }