UNPKG

wix-style-react

Version:
107 lines (102 loc) 3.93 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var EC = protractor.ExpectedConditions; var calendarDriverFactory = function calendarDriverFactory(component) { var getYear = function getYear(year) { var MAX_YEAR = 2028; var index = MAX_YEAR - year; return component.$('[data-hook=\'dropdown-item-' + index + '\']'); }; var getCalendar = function getCalendar() { return component.$('.DayPicker'); }; var getNthAvailableDay = function getNthAvailableDay(n) { return component.$$('[role="gridcell"]:not([class*="outside"])').get(n); }; var getYearDropdown = function getYearDropdown() { return component.$('[data-hook="datepicker-year-dropdown-button"]'); }; var getNthYear = function getNthYear(n) { return component.$('[data-hook="datepicker-year-dropdown"] [data-hook="dropdown-item-' + n + '"]'); }; var getMonthsDropdown = function getMonthsDropdown() { return component.$('[data-hook="datepicker-month-dropdown-button"]'); }; var getNthMonth = function getNthMonth(n) { return component.$('[data-hook="datepicker-month-dropdown-menu"] [data-hook="dropdown-item-' + (n === 0 ? n : n - 1) + '"]'); }; var getCalendarWrapper = function getCalendarWrapper() { return component.$('.DayPicker-wrapper'); }; var getKeyboardSelectedDay = function getKeyboardSelectedDay() { return component.$('.DayPicker-Day:focus'); }; var getPrevMonthButton = function getPrevMonthButton() { return component.$('[data-hook="datepicker-left-arrow"]'); }; var getNextMonthButton = function getNextMonthButton() { return component.$('[data-hook="datepicker-right-arrow"]'); }; var _getMonthCaption = function _getMonthCaption() { return component.$('[data-hook="datepicker-month-caption"]'); }; return { getElement: function getElement() { return getCalendar(); }, exists: function exists() { return getCalendar().isPresent(); }, isYearInViewPort: function isYearInViewPort(year) { return browser.wait(EC.visibilityOf(getYear(year)), 5000); }, isVisible: function isVisible() { return getCalendar().isDisplayed(); }, clickOnNthAvailableDay: function clickOnNthAvailableDay() { var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; return getNthAvailableDay(n).click(); }, openYearDropdownOptions: function openYearDropdownOptions() { return getYearDropdown().click(); }, clickOnNthYear: function clickOnNthYear() { var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; return getNthYear(n).click(); }, openMonthDropdownOptions: function openMonthDropdownOptions() { return getMonthsDropdown().click(); }, clickOnNthMonth: function clickOnNthMonth() { var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; return getNthMonth(n).click(); }, pressEscKey: function pressEscKey() { return getCalendarWrapper().sendKeys(protractor.Key.ESCAPE); }, pressTabKey: function pressTabKey() { return getCalendarWrapper().sendKeys(protractor.Key.TAB); }, pressEnterKey: function pressEnterKey() { return getKeyboardSelectedDay().sendKeys(protractor.Key.ENTER); }, pressArrowRightKey: function pressArrowRightKey() { return getKeyboardSelectedDay().sendKeys(protractor.Key.ARROW_RIGHT); }, pressArrowLeftKey: function pressArrowLeftKey() { return getKeyboardSelectedDay().sendKeys(protractor.Key.ARROW_LEFT); }, nextMonth: function nextMonth() { return getNextMonthButton().click(); }, prevMonth: function prevMonth() { return getPrevMonthButton().click(); }, getMonthCaption: function getMonthCaption() { return _getMonthCaption().getText(); } }; }; exports.default = calendarDriverFactory;