UNPKG

qe-fe-automation

Version:
62 lines (55 loc) 2.26 kB
import { AdminInterceptsApis } from '@admin-lib/api-intercept'; import { GrowthUtilities } from '@growth-lib/growth-utilities'; const impersonateSelector = { navanHomepageUrl: 'app/user2/home', expenseAdminPageUrl: 'app/liquid/admin/activity/transactions', userMenuButton: '[data-qaid="USER_MENU-button"]', logInAsButton: '.ta-user', userSearchField: '[class="popover login-as-search enter"] input', userSearchResult: '.ta-search-result__user', successToast: 'ta-user-toastr .ta-toastr-event__message' }; export class ImpersonateUser { static visitNavanHomePage() { cy.visit(impersonateSelector.navanHomepageUrl); } static visitExpenseAdminHomePage() { AdminInterceptsApis.interceptAdminsApis(); cy.visit(impersonateSelector.expenseAdminPageUrl); } static verifyDelegateNameOnUserMenuButton(delegateUser: string) { cy.get(impersonateSelector.userMenuButton).should('contain', delegateUser); } static searchForAndSelectUserToImpersonate(impersonatedUser: string) { cy.get(impersonateSelector.logInAsButton).click(); cy.get(impersonateSelector.userSearchField).type(impersonatedUser); cy.get(impersonateSelector.userSearchResult).click(); cy.get(impersonateSelector.successToast).should( 'contain', `Successfully logged in as ${impersonatedUser}` ); } static verifyImpersonatedUserNameOnUserMenuButton(impersonatedUser: string) { AdminInterceptsApis.interceptAdminsApis(); cy.wait('@waitForImpersonatedUser').then((xhr) => { const name = xhr.response?.body?.name; expect(name).to.equal(impersonatedUser); }); cy.get(impersonateSelector.userMenuButton) .should('contain', 'Logged in as') .and('contain', impersonatedUser) .then(() => { GrowthUtilities.hideLiquidUnifiedListBanner(); }); } static verifyImpersonatedUserNameOnUserMenuButtoInAdmin(impersonatedUser: string) { AdminInterceptsApis.interceptAdminsApis(); cy.wait('@waitForImpersonatedUser').then((xhr) => { const name = xhr.response?.body?.name; expect(name).to.equal(impersonatedUser); }); cy.get(impersonateSelector.userMenuButton) .should('contain', 'Logged in as') .and('contain', impersonatedUser); } }