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