import React from 'react'; // eslint-disable-line no-unused-vars
import { mount, shallow } from 'enzyme';
import Datetime from '../DateTime'; // eslint-disable-line no-unused-vars
const _simulateClickOnElement = (element) => {
if (element.length === 0) {
// eslint-disable-next-line no-console
console.warn('Element not clicked since it doesn\'t exist');
return;
}
return element.simulate('click');
};
module.exports = {
createDatetime: (props) => {
return mount();
},
createDatetimeShallow: (props) => {
return shallow();
},
/*
* Click Simulations
*/
openDatepicker: (datetime) => {
datetime.find('.form-control').simulate('focus');
},
clickOnElement: (element) => {
return _simulateClickOnElement(element);
},
clickNthDay: (datetime, n) => {
return _simulateClickOnElement(datetime.find('.rdtDay').at(n));
},
clickNthMonth: (datetime, n) => {
return _simulateClickOnElement(datetime.find('.rdtMonth').at(n));
},
clickNthYear: (datetime, n) => {
return _simulateClickOnElement(datetime.find('.rdtYear').at(n));
},
/*
* Boolean Checks
*/
isOpen: (datetime) => {
return datetime.find('.rdt.rdtOpen').length === 1;
},
isDayView: (datetime) => {
return datetime.find('.rdtPicker .rdtDays').length === 1;
},
isMonthView: (datetime) => {
return datetime.find('.rdtPicker .rdtMonths').length === 1;
},
isYearView: (datetime) => {
return datetime.find('.rdtPicker .rdtYears').length === 1;
},
isTimeView: (datetime) => {
return datetime.find('.rdtPicker .rdtTime').length === 1;
},
/*
* Change Time Values
*
* These functions only work when the time view is open
*/
increaseHour: (datetime) => {
datetime.find('.rdtCounter .rdtBtn').at(0).simulate('mouseDown');
},
decreaseHour: (datetime) => {
datetime.find('.rdtCounter .rdtBtn').at(1).simulate('mouseDown');
},
increaseMinute: (datetime) => {
datetime.find('.rdtCounter .rdtBtn').at(2).simulate('mouseDown');
},
decreaseMinute: (datetime) => {
datetime.find('.rdtCounter .rdtBtn').at(3).simulate('mouseDown');
},
increaseSecond: (datetime) => {
datetime.find('.rdtCounter .rdtBtn').at(4).simulate('mouseDown');
},
decreaseSecond: (datetime) => {
datetime.find('.rdtCounter .rdtBtn').at(5).simulate('mouseDown');
},
/*
* Get Values
*/
getNthDay: (datetime, n) => {
return datetime.find('.rdtDay').at(n);
},
getNthMonth: (datetime, n) => {
return datetime.find('.rdtMonth').at(n);
},
getNthYear: (datetime, n) => {
return datetime.find('.rdtYear').at(n);
},
getHours: (datetime) => {
return datetime.find('.rdtCount').at(0).text();
},
getMinutes: (datetime) => {
return datetime.find('.rdtCount').at(1).text();
},
getSeconds: (datetime) => {
return datetime.find('.rdtCount').at(2).text();
},
getInputValue: (datetime) => {
return datetime.find('.rdt > .form-control').getDOMNode().value;
},
getViewDateValue: (datetime) => {
return datetime.find('.rdtSwitch').getDOMNode().innerHTML;
}
};