blob: 33dee43f01d3919406af0c47632df97cf74a3dfb [file] [log] [blame]
Nils Diewalda79b2682015-05-18 18:34:06 +00001define(['datepicker'], function (dpClass) {
2 describe('KorAP.Datepicker', function () {
3
4 it('should be initializable', function () {
5 var dp = dpClass.create();
6 var e = dp.show();
7 expect(e.nodeName).toEqual('DIV');
8 expect(e.classList.contains('datepicker')).toBeTruthy();
9 expect(e.getAttribute('tabindex')).toEqual('0');
10 });
11
12 it('should generate valid dates', function () {
13 var dp = dpClass.create();
14 expect(dp.today()).toMatch("\\d{4}-[01\\d-[01]\\d");
15 });
16
17 it('should have year and month helpers', function () {
18 var dp = dpClass.create();
19 var e = dp.show(2013, 2);
20 expect(e.nodeName).toEqual('DIV');
21 expect(e.classList.contains('datepicker')).toBeTruthy();
22 expect(e.getAttribute('tabindex')).toEqual('0');
23 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('2013');
24 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('February');
25 });
26
27 it('should have modifyable year', function () {
28 var dp = dpClass.create();
29 var e = dp.show(2013, 2);
30 expect(e.nodeName).toEqual('DIV');
31 expect(e.classList.contains('datepicker')).toBeTruthy();
32 expect(e.getAttribute('tabindex')).toEqual('0');
33 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('2013');
34 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('February');
35
36 dp.incrYear();
37 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('2014');
38 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('February');
39
40 dp.incrYear();
41 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('2015');
42 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('February');
43
44 dp.decrYear();
45 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('2014');
46 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('February');
47
48 // Max value
Akron56ea7e32016-04-20 12:25:52 +020049 e = dp.show(9998, 2);
Nils Diewalda79b2682015-05-18 18:34:06 +000050 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('9998');
51 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('February');
52
53 dp.incrYear();
54 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('9999');
55 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('February');
56
57 dp.incrYear();
58 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('9999');
59 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('February');
60
61 // Min value
Akron56ea7e32016-04-20 12:25:52 +020062 e = dp.show(2, 2);
Nils Diewalda79b2682015-05-18 18:34:06 +000063 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('2');
64 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('February');
65
66 dp.decrYear();
67 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('1');
68 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('February');
69
70 dp.decrYear();
71 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('0');
72 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('February');
73
74 dp.decrYear();
75 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('0');
76 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('February');
77 });
78
79 it('should have modifyable month', function () {
80 var dp = dpClass.create();
Akron56ea7e32016-04-20 12:25:52 +020081 var e = dp.show(2012, 9);
82
83 expect(e.nodeName).toEqual('DIV');
84 expect(e.classList.contains('datepicker')).toBeTruthy();
85
86 expect(e.getAttribute('tabindex')).toEqual('0');
87 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('2012');
88 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('September');
89
90 dp.incrMonth();
91 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('2012');
92 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('October');
93
94 dp.incrMonth();
95 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('2012');
96 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('November');
97
98 dp.incrMonth();
99 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('2012');
100 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('December');
101
102 dp.incrMonth();
103 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('2013');
104 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('January');
105
106 dp.decrMonth();
107 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('2012');
108 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('December');
109
110 // Max value
111 e = dp.show(9999, 12);
112 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('9999');
113 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('December');
114
115 dp.incrMonth();
116 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('9999');
117 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('December');
118
119 // Min value
120 e = dp.show(1, 2);
121 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('1');
122 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('February');
123
124 dp.decrMonth();
125 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('1');
126 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('January');
127
128 dp.decrMonth();
129 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('0');
130 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('December');
131
132 e = dp.show(0, 2);
133 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('0');
134 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('February');
135
136 dp.decrMonth();
137 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('0');
138 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('January');
139
140 dp.decrMonth();
141 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('0');
142 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('January');
143
Nils Diewalda79b2682015-05-18 18:34:06 +0000144 });
Akronff78fef2020-10-13 12:00:03 +0200145
146 it('should parse from string', function () {
147 var dp = dpClass.create();
148 expect(dp.fromString()).toBeFalsy();
149 expect(dp.fromString("2020-September")).toBeFalsy();
150 expect(dp.fromString("2020")).toBeTruthy();
151 expect(dp.fromString("2020-10")).toBeTruthy();
152 expect(dp.fromString("2020-10-9")).toBeFalsy();
153 expect(dp.fromString("2020-10-09")).toBeTruthy();
154
155 expect(dp._selected['year']).toEqual(2020);
156 expect(dp._selected['month']).toEqual(10);
157 expect(dp._selected['day']).toEqual(9);
158
159 var e = dp.show(2020, 11);
160
161 expect(e.querySelector('div.year > span:nth-child(2)').firstChild.data).toEqual('2020');
162 expect(e.querySelector('div.year > span:nth-child(2)').classList.contains('selected')).toBeTruthy();
163 expect(e.querySelector('div.month > span:nth-child(2)').firstChild.data).toEqual('November');
164 expect(e.querySelector('div.month > span:nth-child(2)').classList.contains('selected')).toBeFalsy();
165 expect(e.querySelector('div.month > span:nth-child(2)').classList.contains('selected')).toBeFalsy();
166
167 expect(dp.toString()).toEqual("2020-10-09");
168 });
Nils Diewalda79b2682015-05-18 18:34:06 +0000169 });
170});