qe-fe-automation
Version:
FE test automation framework using cypress
100 lines (87 loc) • 3.76 kB
text/typescript
import { Utility, verticalType, utilitySelector, Timeouts } from '@utility-lib/index';
export const createEventSelector = {
createEventText: '[data-testid="createEventText"]',
eventLocation: '.ta-location-search-v2 input',
eventNameField: '[data-testid="eventTitleInput"]',
eventLocationFieldOptions: '[data-testid="locationFieldSubtitle"]',
upcomingEventActionButton: '[data-testid="upcomingEventActionButton"]',
eventDatePicker: '[data-testid="createEventDatePicker"]',
nextMonthArrow: '[data-testid="datePickerNextMonthButton"]',
calendarDay: '[data-testid="calendarDay"]',
datePickerDoneButton: '[data-testid="datePickerDoneButton"]',
saveAndContinueButton: '[data-testid="saveAndContinueButton"]',
bookTripLater: '[data-testid="bookLaterButton"]'
};
export class CreateEvent {
static selectEventLocation(location: string) {
cy.allure().logStep(`fill in event location: ${location}`);
cy.get(createEventSelector.createEventText).should('be.visible');
cy.get(createEventSelector.eventLocation)
.eq(1)
.then((ele) => {
cy.wrap(ele).click({ force: true });
cy.wrap(ele).type(location, { force: true });
});
cy.get(createEventSelector.eventLocationFieldOptions)
.eq(0)
.trigger('click', { force: true });
}
static selectSelfSellEventLocation(location: string) {
cy.allure().logStep(`fill in event location: ${location}`);
cy.get(createEventSelector.createEventText).should('be.visible');
cy.get(createEventSelector.eventLocation).then((ele) => {
cy.wrap(ele).click({ force: true });
cy.wrap(ele).type(location, { force: true });
});
cy.get(createEventSelector.eventLocationFieldOptions)
.eq(0)
.trigger('click', { force: true });
}
static setEventTitle(title: string) {
cy.allure().logStep(`set event title: ${title}`);
cy.get(createEventSelector.eventNameField).then((ele) => {
cy.wrap(ele).click({ force: true });
cy.wrap(ele).type(`${title}`, { force: true });
});
}
static setEventDates(eventStartDate: string, eventEndDate: string) {
cy.allure().logStep('set event start/end dates');
cy.get(createEventSelector.eventDatePicker).eq(1).click();
cy.get(createEventSelector.nextMonthArrow).click();
cy.get(createEventSelector.calendarDay).contains(eventStartDate).click();
cy.get(createEventSelector.calendarDay).contains(eventEndDate).click();
cy.get(createEventSelector.datePickerDoneButton).contains('Done').click();
cy.get(createEventSelector.saveAndContinueButton).should('be.visible');
}
static createDraftEvent() {
cy.allure().logStep('create draft event');
cy.get(createEventSelector.saveAndContinueButton).click();
cy.wait('@waitForTeamEvent');
}
static openSearchPage() {
cy.allure().logStep('open search page');
Utility.visitSearchPage();
cy.wait(Timeouts.SHORT_TIMEOUT_5_SEC.timeout);
}
static clickNextButton() {
cy.allure().logStep(`click next button`);
cy.get(createEventSelector.saveAndContinueButton).click();
}
static bookThisTripLater() {
cy.allure().logStep('book this trip late');
cy.get(createEventSelector.bookTripLater).click();
}
static verifyUpcomingEventReviewButton() {
const buttonText = ' View details ';
cy.allure().logStep('verify upcoming event review button');
cy.get(createEventSelector.upcomingEventActionButton, Timeouts.MEDIUM_TIMEOUT_60_SEC)
.should('be.visible')
.contains(buttonText);
}
static selectTeamEventVertical(tab: verticalType) {
cy.allure().logStep(`select search type: ${tab}`);
cy.get(utilitySelector.dataTestID(tab), Timeouts.MEDIUM_TIMEOUT_60_SEC)
.should('be.visible')
.click();
}
}