Simon Egersand
2017-07-29 ce1b065ddc9a5abb3a3705460c7bf88ebe4bb5af
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) => {
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
19     /*
20      * Click Simulations
21      */
794700 22     openDatepicker: (datetime) => {
SE 23         datetime.find('.form-control').simulate('focus');
24     },
25
290be5 26     clickOnElement: (element) => {
SE 27         return simulateClickOnElement(element);
28     },
29
30     clickNthDay: (datetime, n) => {
31         return simulateClickOnElement(datetime.find('.rdtDay').at(n));
32     },
33
34     clickNthMonth: (datetime, n) => {
35         return datetime.find('.rdtMonth').at(n).simulate('click');
36     },
37
38     clickNthYear: (datetime, n) => {
39         return datetime.find('.rdtYear').at(n).simulate('click');
40     },
41
42     /*
43      * Boolean Checks
44      */
45     isOpen: (datetime) => {
46         return datetime.find('.rdt.rdtOpen').length === 1;
47     },
48
49     isDayView: (datetime) => {
50         return datetime.find('.rdtPicker .rdtDays').length === 1;
51     },
52
53     isMonthView: (datetime) => {
54         return datetime.find('.rdtPicker .rdtMonths').length === 1;
55     },
56
57     isYearView: (datetime) => {
58         return datetime.find('.rdtPicker .rdtYears').length === 1;
59     },
60
61     isTimeView: (datetime) => {
62         return datetime.find('.rdtPicker .rdtTime').length === 1;
63     },
64
65     /*
39e146 66      * Change Time Values
SE 67      *
68      * These functions only work when the time view is open
290be5 69      */
SE 70     increaseHour: (datetime) => {
71         datetime.find('.rdtCounter .rdtBtn').at(0).simulate('mouseDown');
72     },
73
74     decreaseHour: (datetime) => {
75         datetime.find('.rdtCounter .rdtBtn').at(1).simulate('mouseDown');
76     },
77
78     increaseMinute: (datetime) => {
79         datetime.find('.rdtCounter .rdtBtn').at(2).simulate('mouseDown');
80     },
81
82     decreaseMinute: (datetime) => {
83         datetime.find('.rdtCounter .rdtBtn').at(3).simulate('mouseDown');
84     },
85
86     increaseSecond: (datetime) => {
87         datetime.find('.rdtCounter .rdtBtn').at(4).simulate('mouseDown');
88     },
89
90     decreaseSecond: (datetime) => {
91         datetime.find('.rdtCounter .rdtBtn').at(5).simulate('mouseDown');
92     },
93
94     /*
95      * Get Values
96      */
97     getNthDay: (datetime, n) => {
98         return datetime.find('.rdtDay').at(n);
99     },
100
101     getNthMonth: (datetime, n) => {
102         return datetime.find('.rdtMonth').at(n);
103     },
104
105     getNthYear: (datetime, n) => {
106         return datetime.find('.rdtYear').at(n);
107     },
108
f3c055 109     getHours: (datetime) => {
SE 110         return datetime.find('.rdtCount').at(0).text();
111     },
112
113     getMinutes: (datetime) => {
114         return datetime.find('.rdtCount').at(1).text();
115     },
116
117     getSeconds: (datetime) => {
118         return datetime.find('.rdtCount').at(2).text();
119     },
120
290be5 121     getInputValue: (datetime) => {
SE 122         return datetime.find('.rdt > .form-control').getDOMNode().value;
123     }
124 };