UNPKG

@nateradebaugh/react-datetime

Version:

A lightweight but complete datetime picker React.js component

161 lines (132 loc) 3.39 kB
import React from "react"; import { mount, shallow } from "enzyme"; import DateTime from "../"; const _simulateClickOnElement = element => { if (element.length === 0) { // eslint-disable-next-line no-console console.warn("Element not clicked since it doesn't exist"); return null; } return element.simulate("click"); }; module.exports = { createDatetime: props => { return mount(<DateTime {...props} />); }, createDatetimeShallow: props => { return shallow(<DateTime {...props} />); }, /* * 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; } };