qe-fe-automation
Version:
FE test automation framework using cypress
82 lines (70 loc) • 2.51 kB
text/typescript
import { LoginPage } from '@admin-lib/index';
import { GuestTravelInfo, UserModal } from '@profile-lib/index';
import { createGuestDetails, createName, GuestDetails } from '@support-user/index';
import { Provider_Type, User_Type } from '@support-onboard/index';
describe('Trips: Profile: Guest travel info', () => {
beforeEach(() => {
GuestTravelInfo.interceptApis();
UserModal.interceptApis();
LoginPage.createNewCompanyAndLoginWithUserByType({
providers: [Provider_Type.EXPEDIA_FLIGHT, Provider_Type.ALL_CAR],
users: [User_Type.TRAVELER]
});
GuestTravelInfo.visitPage();
});
it('C574604: should create business guest', { tags: ['@tier1'] }, () => {
const guestDetails = createGuestDetails(30, 'MALE', 'Business');
createUser(guestDetails);
editGuest(guestDetails);
deleteGuest(guestDetails);
});
const createUser = (guestDetails: GuestDetails) => {
GuestTravelInfo.waitToBeLoaded();
GuestTravelInfo.openNewTravelerModal();
const {
givenName = '',
familyName = '',
email = '',
phoneNumber = '',
age = 30,
travelerType = 'Business'
} = guestDetails;
UserModal.fillTravelerType(travelerType);
UserModal.fillTravelerName(givenName, familyName);
UserModal.fillBirthday(age);
UserModal.fillGender('MALE');
UserModal.fillEmail(email);
UserModal.fillPhoneNumber(phoneNumber);
if ('Business' === travelerType) {
UserModal.checkCostFields();
}
UserModal.save();
GuestTravelInfo.expectGuestToExists({
email,
firstName: givenName,
lastName: familyName
});
};
const editGuest = (guestDetails: GuestDetails) => {
const { givenName = '', familyName = '', email = '' } = guestDetails;
GuestTravelInfo.openEditTravelerModal(givenName, familyName);
const newGivenName = createName(8);
const newFamilyName = createName(8);
UserModal.fillTravelerName(newGivenName, newFamilyName);
UserModal.edit();
GuestTravelInfo.waitToBeLoaded();
GuestTravelInfo.waitUpdateList();
GuestTravelInfo.expectGuestToExists({
email,
firstName: newGivenName,
lastName: newFamilyName
});
};
const deleteGuest = (guestDetails: GuestDetails) => {
const { givenName = '', familyName = '' } = guestDetails;
GuestTravelInfo.deleteTraveler(givenName, familyName);
GuestTravelInfo.waitToBeLoaded();
GuestTravelInfo.waitUpdateList();
GuestTravelInfo.expectToHaveNoGuests();
};
});