import moment from 'moment'; import { Button } from '@contour/fet/lib/elements/button'; import locator from './contourDatePicker.locator'; import { ContourElement } from '../base/baseContourComponent'; export class ContourDatePicker extends ContourElement { constructor(selector: string) { super(selector, locator); } async selectDate(selectDate: moment.Moment, baseDate: string = null) { await new Button(this.locators.datePickerButton, this.selector).clickElement(); let today = null; if (baseDate === null) { today = moment(); } else { today = moment(baseDate, 'YYYY-MM-DD'); } let monthDiff = selectDate.diff(today, 'months'); if (today.date() >= selectDate.date()) { monthDiff++; } for (let i = 0; i < monthDiff; i++) { await new Button(this.locators.datePickerNextButton).clickElement(); } logger.info('Date to pick:' + selectDate.format()); const day: string = selectDate.date().toString(); const dayToSelect = day.length === 1 ? '0' + day : day; const daySelector = this.locators.daySelector.replace('#DATE#', dayToSelect); await new Button(daySelector).clickElement(); } }