qe-fe-automation
Version:
FE test automation framework using cypress
58 lines (50 loc) • 1.68 kB
text/typescript
import {
RentalCarCheckout,
Trips,
RentalCarDropOffType,
RentalCarLocationType,
RentalCarUtility,
RentalCarParams,
LocationUtility
} from '@rentalCar-lib/index';
const newUserCredentials = Cypress.env('newUser').NEW_USER_PASSWORD;
const outOfPolicy = 'Yes';
const adminDecision = 'decline';
export enum RentalCarPolicyStatus {
Rejected = 'Rejected',
Pending = 'Pending Approval'
}
enum RentalCarPolicyType {
Cost = 'cost',
Class = 'class'
}
const createRentalCarParams = (policyType: RentalCarPolicyType): RentalCarParams => ({
tripTileType: 'Business',
dropOffType: RentalCarDropOffType.sameDropOff,
pickUpLocation: LocationUtility.getRentalCarAirportUS(),
outOfPolicy: outOfPolicy,
dropOffLocation: LocationUtility.getRentalCarAirportUS(),
rentalCarLocationType: RentalCarLocationType.airport,
policyType: policyType
});
export class RentalCarPolicyModal {
static declineRentalCarPolicyBooking(policyType: RentalCarPolicyType) {
const rentalCarParams = createRentalCarParams(policyType);
RentalCarUtility.bookRentalCar(rentalCarParams);
RentalCarCheckout.expectBookingSuccessfully();
Trips.verifyTripStatus(RentalCarPolicyStatus.Pending);
RentalCarCheckout.adminApproveOrDeclineRentalCarBooking(
newUserCredentials,
adminDecision
);
Trips.canceledTrip();
Trips.verifyTripStatus(RentalCarPolicyStatus.Rejected);
Trips.expectDriverNameIsCorrect();
}
static declineRentalCarClassPolicyBooking() {
this.declineRentalCarPolicyBooking(RentalCarPolicyType.Class);
}
static declineRentalCarCostPolicyBooking() {
this.declineRentalCarPolicyBooking(RentalCarPolicyType.Cost);
}
}