@@ -5,6 +5,7 @@ import { CartActionsOptionalParamsInterface, ClientSideValiationErrorOptionalPar
55import { MenuBarCategories } from "../common/navigationEnums/menuBarCategories/MenuBarCategories" ;
66import { MenuBarSubCategories } from "../common/navigationEnums/menuBarSubCategories/MenuBarSubCategories" ;
77import { ItemShoppingComponentPage } from "./pageComponents/productShoppingComponent/ItemShoppingPage" ;
8+ import { AccountHeaderOptions } from "../common/accountHeader/AccountHeaderOptions" ;
89
910export class LumaMainPage extends BasePage {
1011 private searchBoxLocator = '#search' ;
@@ -28,6 +29,8 @@ export class LumaMainPage extends BasePage {
2829 protected pageMessageCaptionLocator = '[class="page messages"]'
2930 private navigationMenuBar = '.navigation a' ;
3031 private dialogFooterLocator = '[class="modal-footer"]' ;
32+ private loggedInAttributeLocator = '.logged-in' ;
33+ private accountDownArrowButtonLocator = '[class="panel header"] .customer-welcome'
3134
3235 public async chooseMenuBarOption ( menuBarItem : MenuBar ) {
3336 let menuBarValue = this . page . locator ( this . navigationMenuBar , { hasText : new RegExp ( `^\\${ menuBarItem . valueOf ( ) } \\b$` , 'i' ) } ) ;
@@ -340,4 +343,17 @@ export class LumaMainPage extends BasePage {
340343 }
341344 expect ( tableRowCellValues ) . toEqual ( expectedCellValues ) ;
342345 }
346+
347+ /**
348+ * @description clicks on the logged in user account header down arrow button and chooses one of the options - my account, my wish list and sign out
349+ */
350+ public async clickAndChooseAccountOption ( accountHeaderOption : AccountHeaderOptions ) {
351+ const userGreet = this . page . locator ( this . userWelcomeCaptionLocator ) ;
352+ if ( await userGreet . isVisible ( ) ) {
353+ await this . clickElement ( this . accountDownArrowButtonLocator ) ;
354+ await this . clickOnLink ( accountHeaderOption . valueOf ( ) ) ;
355+ } else {
356+ throw new Error ( `user may be signed out and therefore the account options are not available` )
357+ }
358+ }
343359}
0 commit comments