Simon Egersand
2018-02-07 63e0b0b2fc6f361b5ac4751eb05bc5983aea5873
commit | author | age
9eae92 1 import React from 'react'; // eslint-disable-line no-unused-vars
290be5 2 import { mount } from 'enzyme';
9eae92 3 import Datetime from '../DateTime'; // eslint-disable-line no-unused-vars
290be5 4
SE 5 const simulateClickOnElement = (element) => {
de3fe1 6   if (element.length === 0) {
SE 7     // eslint-disable-next-line no-console
8     console.warn("Element not clicked since it doesn't exist");
9     return;
10   }
11   return element.simulate('click');
290be5 12 };
SE 13
14 module.exports = {
de3fe1 15   createDatetime: (props) => {
SE 16     return mount(<Datetime {...props} />);
17   },
290be5 18
de3fe1 19   /*
290be5 20      * Click Simulations
SE 21      */
de3fe1 22   openDatepicker: (datetime) => {
SE 23     datetime.find('.form-control').simulate('focus');
24   },
794700 25
de3fe1 26   clickOnElement: (element) => {
SE 27     return simulateClickOnElement(element);
28   },
290be5 29
de3fe1 30   clickNthDay: (datetime, n) => {
SE 31     return simulateClickOnElement(datetime.find('.rdtDay').at(n));
32   },
290be5 33
de3fe1 34   clickNthMonth: (datetime, n) => {
SE 35     return datetime
36       .find('.rdtMonth')
37       .at(n)
38       .simulate('click');
39   },
290be5 40
de3fe1 41   clickNthYear: (datetime, n) => {
SE 42     return datetime
43       .find('.rdtYear')
44       .at(n)
45       .simulate('click');
46   },
290be5 47
de3fe1 48   /*
290be5 49      * Boolean Checks
SE 50      */
de3fe1 51   isOpen: (datetime) => {
SE 52     return datetime.find('.rdt.rdtOpen').length === 1;
53   },
290be5 54
de3fe1 55   isDayView: (datetime) => {
SE 56     return datetime.find('.rdtPicker .rdtDays').length === 1;
57   },
290be5 58
de3fe1 59   isMonthView: (datetime) => {
SE 60     return datetime.find('.rdtPicker .rdtMonths').length === 1;
61   },
290be5 62
de3fe1 63   isYearView: (datetime) => {
SE 64     return datetime.find('.rdtPicker .rdtYears').length === 1;
65   },
290be5 66
de3fe1 67   isTimeView: (datetime) => {
SE 68     return datetime.find('.rdtPicker .rdtTime').length === 1;
69   },
290be5 70
de3fe1 71   /*
39e146 72      * Change Time Values
SE 73      *
74      * These functions only work when the time view is open
290be5 75      */
de3fe1 76   increaseHour: (datetime) => {
SE 77     datetime
78       .find('.rdtCounter .rdtBtn')
79       .at(0)
80       .simulate('mouseDown');
81   },
290be5 82
de3fe1 83   decreaseHour: (datetime) => {
SE 84     datetime
85       .find('.rdtCounter .rdtBtn')
86       .at(1)
87       .simulate('mouseDown');
88   },
290be5 89
de3fe1 90   increaseMinute: (datetime) => {
SE 91     datetime
92       .find('.rdtCounter .rdtBtn')
93       .at(2)
94       .simulate('mouseDown');
95   },
290be5 96
de3fe1 97   decreaseMinute: (datetime) => {
SE 98     datetime
99       .find('.rdtCounter .rdtBtn')
100       .at(3)
101       .simulate('mouseDown');
102   },
290be5 103
de3fe1 104   increaseSecond: (datetime) => {
SE 105     datetime
106       .find('.rdtCounter .rdtBtn')
107       .at(4)
108       .simulate('mouseDown');
109   },
290be5 110
de3fe1 111   decreaseSecond: (datetime) => {
SE 112     datetime
113       .find('.rdtCounter .rdtBtn')
114       .at(5)
115       .simulate('mouseDown');
116   },
290be5 117
de3fe1 118   /*
290be5 119      * Get Values
SE 120      */
de3fe1 121   getNthDay: (datetime, n) => {
SE 122     return datetime.find('.rdtDay').at(n);
123   },
290be5 124
de3fe1 125   getNthMonth: (datetime, n) => {
SE 126     return datetime.find('.rdtMonth').at(n);
127   },
290be5 128
de3fe1 129   getNthYear: (datetime, n) => {
SE 130     return datetime.find('.rdtYear').at(n);
131   },
290be5 132
de3fe1 133   getHours: (datetime) => {
SE 134     return datetime
135       .find('.rdtCount')
136       .at(0)
137       .text();
138   },
f3c055 139
de3fe1 140   getMinutes: (datetime) => {
SE 141     return datetime
142       .find('.rdtCount')
143       .at(1)
144       .text();
145   },
f3c055 146
de3fe1 147   getSeconds: (datetime) => {
SE 148     return datetime
149       .find('.rdtCount')
150       .at(2)
151       .text();
152   },
f3c055 153
de3fe1 154   getInputValue: (datetime) => {
SE 155     return datetime.find('.rdt > .form-control').getDOMNode().value;
156   }
290be5 157 };