UNPKG

qe-fe-automation

Version:
70 lines (67 loc) 2.7 kB
import { trainSearchSelector } from './search'; export const trainCardSelector = { addNewTrainCard: '[text="Add new train card"] button', searchNewLoyaltyCard: 'input[qaid="searchLoyalty"]', addTrainCard: '[class^="ta-button-v2 button button--ghost"]', cardNumber: '[formcontrolname="railCardNumber"]', expirationMonth: '[formcontrolname="expirationMonth"] button', expirationDay: '[formcontrolname="expirationDay"] button', expirationYear: '[formcontrolname="expirationYear"] button', selectOption: '[class="ta-select-option"]', addCard: '[id="addRailCardButton"] button', loyaltyCard: '[class="ta-train-card-status has-cards"]' }; const randomMonth = Math.floor(Math.random() * 6) + 1; const randomDay = Math.floor(Math.random() * 10) + 1; export class TrainLoyaltyCard { static addTrainCard() { cy.get(trainSearchSelector.addTraveler).click(); cy.get(trainCardSelector.addTrainCard).click(); cy.wait('@waitForLoadTrainCard'); cy.allure().logStep('Add train card'); this.logStep(); } static searchAndSelectLoyaltyCard(loyaltyCardName: string, loyaltyCardNumber: string) { cy.get(trainCardSelector.addNewTrainCard).click(); cy.get(trainCardSelector.searchNewLoyaltyCard).type(loyaltyCardName); cy.allure().logStep('Search loyalty card'); this.selectLoyaltyCard(loyaltyCardName); this.addCardDetails(loyaltyCardNumber); this.logStep(); } static selectLoyaltyCard(loyaltyCardName: string) { cy.get(`[qaid="${loyaltyCardName}"]`).eq(0).click(); this.logStep(); } static addCardDetails(cardNumber: string) { this.addCardNumber(cardNumber); cy.get(trainCardSelector.expirationMonth).click(); cy.get(trainCardSelector.selectOption).eq(randomMonth).click(); cy.get(trainCardSelector.expirationDay).click(); cy.get(trainCardSelector.selectOption).eq(randomDay).click(); cy.get(trainCardSelector.expirationYear).click(); cy.get('[aria-label="2037"]').click(); this.saveAddedCard(); cy.allure().logStep('Add card details'); this.logStep(); } static addCardNumber(cardNumber: string) { cy.get(trainCardSelector.cardNumber).type(cardNumber); cy.allure().logStep('Add card number'); } static saveAddedCard() { cy.get(trainCardSelector.addCard).click(); cy.allure().logStep('Save added card'); } static logStep() { const callerName = (new Error().stack as string).split('\n')[2].trim(); const stepName = callerName.substring( callerName.lastIndexOf('.') + 1, callerName.indexOf('(') ); cy.allure().logStep(stepName); } static expectLoyaltyCardAdded() { cy.get(trainCardSelector.loyaltyCard).should('be.visible'); } }