qe-fe-automation
Version:
FE test automation framework using cypress
116 lines (99 loc) • 4.38 kB
text/typescript
import { LoginPage } from '@admin-lib/login';
import { DelegateInfo } from '@profile-lib/delegate-info';
import { Utility } from '@utility-lib/utility';
const TravelPlannerSelector = {
eaTripOnboarding: '.ea-trips-onboarding',
dismissModal: '.ta-button__content',
addTravelerButton: '[data-testid="addButtonFooter"]',
addExistingTraveler: '.ng-star-inserted',
selectTraveler: '.ta-travel-planner-add-user-modal__body-results-list__action',
saveTravelerSelection: '[data-testid="ta-travel-planner-add-user-modal-save-button"]',
editProfileButton: '[data-testid="editProfile"]',
newTripButton: '[data-testid="newTrip"]',
seeAllTrips: '.itinerary-information__trips-link',
contactInfo: '.ta-profile-side-nav__text',
backArrow: '.back-arrow'
};
const newUserPassword = Cypress.env('newUser').NEW_USER_PASSWORD;
export class TravelPlanner {
static visitTravelPlannerPage(): void {
cy.allure().logStep('Visit profile page on contact info tab');
cy.visit('app/user2/trips/delegate');
}
static assignDelegateAndViewTravelPlanner(): void {
LoginPage.createNewTravelerAndLogin();
DelegateInfo.visitProfileContactInfo();
DelegateInfo.getDataFromCachedAdminUserAndSetHimAsDelegatedUser();
Utility.loginAsAdmin(newUserPassword);
Utility.visitSearchPage();
TravelPlanner.visitTravelPlannerPage();
}
static verifyEaTripOnboardingShown(): void {
cy.allure().logStep('Verify EA trips onboarding is shown');
cy.get(TravelPlannerSelector.eaTripOnboarding).should('be.visible');
}
static dismissEaTripOnboarding(): void {
cy.allure().logStep('Dismiss EA trips onboarding modal');
cy.get(TravelPlannerSelector.dismissModal).contains('Next').click();
}
static acceptEaTripOnboarding(): void {
cy.allure().logStep('Dismiss EA trips onboarding modal');
cy.get(TravelPlannerSelector.dismissModal).contains('Got it').click();
}
static acceptOnboardingAndBookmarkTraveler(): void {
cy.allure().logStep('Verify EA trips onboarding is shown');
TravelPlanner.dismissEaTripOnboarding();
TravelPlanner.dismissEaTripOnboarding();
TravelPlanner.acceptEaTripOnboarding();
TravelPlanner.clickAddExistingTraveler();
TravelPlanner.addRecentTraveler();
}
static clickAddExistingTraveler(): void {
cy.allure().logStep('Click add existing traveler tab');
cy.get(TravelPlannerSelector.addTravelerButton).click();
cy.get(TravelPlannerSelector.addExistingTraveler)
.contains('Add existing traveler')
.click();
}
static addRecentTraveler(): void {
cy.allure().logStep('Add recent traveler');
cy.get(TravelPlannerSelector.selectTraveler).click();
cy.get(TravelPlannerSelector.saveTravelerSelection).click();
}
static clickEditProfile(): void {
cy.allure().logStep('Click edit profile button');
cy.get(TravelPlannerSelector.editProfileButton).click();
}
static clickNewTrip(): void {
cy.allure().logStep('Click new trip button');
cy.get(TravelPlannerSelector.newTripButton).click();
}
static seeAllTrips(): void {
cy.allure().logStep('Click see all trips link');
cy.get(TravelPlannerSelector.seeAllTrips).click();
}
static visitTravelerContactInfo(): void {
cy.allure().logStep('Visit delegate can see traveler contact info');
cy.get(TravelPlannerSelector.contactInfo).contains('Contact info').click();
}
static visitTravelerInfo(): void {
cy.allure().logStep('Visit delegate can see traveler info');
cy.get(TravelPlannerSelector.contactInfo).contains('Traveler info').click();
}
static visitTravelerPaymentMethods(): void {
cy.allure().logStep('Visit delegate can see traveler payment methods');
cy.get(TravelPlannerSelector.contactInfo).contains('Payment methods').click();
}
static visitTravelerLoyaltyPrograms(): void {
cy.allure().logStep('Visit delegate can see traveler loyalty programs');
cy.get(TravelPlannerSelector.contactInfo).contains('Loyalty programs').click();
}
static visitTravelerNotifications(): void {
cy.allure().logStep('Visit delegate can see traveler notifications');
cy.get(TravelPlannerSelector.contactInfo).contains('Notifications').click();
}
static backToTravelPlanner(): void {
cy.allure().logStep('navigate back to travel planner from edit profile');
cy.get(TravelPlannerSelector.backArrow).click();
}
}