diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Header.spec.jsx | 125 | ||||
-rw-r--r-- | tests/Select.spec.jsx | 153 |
2 files changed, 261 insertions, 17 deletions
diff --git a/tests/Header.spec.jsx b/tests/Header.spec.jsx index cc8f954..e992279 100644 --- a/tests/Header.spec.jsx +++ b/tests/Header.spec.jsx | |||
@@ -121,6 +121,131 @@ describe('Header', () => { | |||
121 | }); | 121 | }); |
122 | }); | 122 | }); |
123 | 123 | ||
124 | it('carry disabled correctly', (done) => { | ||
125 | const picker = renderPicker({ | ||
126 | disabledMinutes(h) { | ||
127 | return [h]; | ||
128 | }, | ||
129 | disabledSeconds(h, m) { | ||
130 | return [h + m % 60]; | ||
131 | }, | ||
132 | }); | ||
133 | expect(picker.state.open).not.to.be.ok(); | ||
134 | const input = TestUtils.scryRenderedDOMComponentsWithClass(picker, 'rc-time-picker-input')[0]; | ||
135 | let header; | ||
136 | async.series([(next) => { | ||
137 | Simulate.click(input); | ||
138 | setTimeout(next, 100); | ||
139 | }, (next) => { | ||
140 | expect(picker.state.open).to.be(true); | ||
141 | header = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-input')[0]; | ||
142 | expect(header).to.be.ok(); | ||
143 | expect(ReactDOM.findDOMNode(header).value).to.be('01:02:03'); | ||
144 | expect(ReactDOM.findDOMNode(input).value).to.be('01:02:03'); | ||
145 | |||
146 | ReactDOM.findDOMNode(header).value = '10:09:78'; | ||
147 | Simulate.change(header); | ||
148 | setTimeout(next, 100); | ||
149 | }, (next) => { | ||
150 | expect(picker.state.open).to.be(true); | ||
151 | expect(ReactDOM.findDOMNode(header).className).to.contain('rc-time-picker-panel-input-invalid'); | ||
152 | expect(ReactDOM.findDOMNode(header).value).to.be('10:09:78'); | ||
153 | expect(ReactDOM.findDOMNode(input).value).to.be('01:02:03'); | ||
154 | |||
155 | ReactDOM.findDOMNode(header).value = '10:10:78'; | ||
156 | Simulate.change(header); | ||
157 | setTimeout(next, 100); | ||
158 | }, (next) => { | ||
159 | expect(picker.state.open).to.be(true); | ||
160 | expect(ReactDOM.findDOMNode(header).value).to.be('10:11:18'); | ||
161 | expect(ReactDOM.findDOMNode(input).value).to.be('10:11:18'); | ||
162 | |||
163 | ReactDOM.findDOMNode(header).value = '10:09:19'; | ||
164 | Simulate.change(header); | ||
165 | setTimeout(next, 100); | ||
166 | }, (next) => { | ||
167 | expect(picker.state.open).to.be(true); | ||
168 | expect(ReactDOM.findDOMNode(header).className).to.contain('rc-time-picker-panel-input-invalid'); | ||
169 | expect(ReactDOM.findDOMNode(header).value).to.be('10:09:19'); | ||
170 | expect(ReactDOM.findDOMNode(input).value).to.be('10:11:18'); | ||
171 | |||
172 | ReactDOM.findDOMNode(header).value = '10:09:20'; | ||
173 | Simulate.change(header); | ||
174 | setTimeout(next, 100); | ||
175 | }, (next) => { | ||
176 | expect(picker.state.open).to.be(true); | ||
177 | expect(ReactDOM.findDOMNode(header).value).to.be('10:09:20'); | ||
178 | expect(ReactDOM.findDOMNode(input).value).to.be('10:09:20'); | ||
179 | |||
180 | next(); | ||
181 | }], () => { | ||
182 | done(); | ||
183 | }); | ||
184 | }); | ||
185 | |||
186 | it('carry hidden correctly', (done) => { | ||
187 | const picker = renderPicker({ | ||
188 | disabledMinutes(h) { | ||
189 | return [h]; | ||
190 | }, | ||
191 | disabledSeconds(h, m) { | ||
192 | return [h + m % 60]; | ||
193 | }, | ||
194 | hideDisabledOptions: true, | ||
195 | }); | ||
196 | expect(picker.state.open).not.to.be.ok(); | ||
197 | const input = TestUtils.scryRenderedDOMComponentsWithClass(picker, 'rc-time-picker-input')[0]; | ||
198 | let header; | ||
199 | async.series([(next) => { | ||
200 | Simulate.click(input); | ||
201 | setTimeout(next, 100); | ||
202 | }, (next) => { | ||
203 | expect(picker.state.open).to.be(true); | ||
204 | header = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-input')[0]; | ||
205 | expect(header).to.be.ok(); | ||
206 | expect(ReactDOM.findDOMNode(header).value).to.be('01:02:03'); | ||
207 | expect(ReactDOM.findDOMNode(input).value).to.be('01:02:03'); | ||
208 | |||
209 | ReactDOM.findDOMNode(header).value = '10:09:78'; | ||
210 | Simulate.change(header); | ||
211 | setTimeout(next, 100); | ||
212 | }, (next) => { | ||
213 | expect(picker.state.open).to.be(true); | ||
214 | expect(ReactDOM.findDOMNode(header).className).to.contain('rc-time-picker-panel-input-invalid'); | ||
215 | expect(ReactDOM.findDOMNode(header).value).to.be('10:09:78'); | ||
216 | expect(ReactDOM.findDOMNode(input).value).to.be('01:02:03'); | ||
217 | |||
218 | ReactDOM.findDOMNode(header).value = '10:10:78'; | ||
219 | Simulate.change(header); | ||
220 | setTimeout(next, 100); | ||
221 | }, (next) => { | ||
222 | expect(picker.state.open).to.be(true); | ||
223 | expect(ReactDOM.findDOMNode(header).value).to.be('10:11:18'); | ||
224 | expect(ReactDOM.findDOMNode(input).value).to.be('10:11:18'); | ||
225 | |||
226 | ReactDOM.findDOMNode(header).value = '10:09:19'; | ||
227 | Simulate.change(header); | ||
228 | setTimeout(next, 100); | ||
229 | }, (next) => { | ||
230 | expect(picker.state.open).to.be(true); | ||
231 | expect(ReactDOM.findDOMNode(header).className).to.contain('rc-time-picker-panel-input-invalid'); | ||
232 | expect(ReactDOM.findDOMNode(header).value).to.be('10:09:19'); | ||
233 | expect(ReactDOM.findDOMNode(input).value).to.be('10:11:18'); | ||
234 | |||
235 | ReactDOM.findDOMNode(header).value = '10:09:20'; | ||
236 | Simulate.change(header); | ||
237 | setTimeout(next, 100); | ||
238 | }, (next) => { | ||
239 | expect(picker.state.open).to.be(true); | ||
240 | expect(ReactDOM.findDOMNode(header).value).to.be('10:09:20'); | ||
241 | expect(ReactDOM.findDOMNode(input).value).to.be('10:09:20'); | ||
242 | |||
243 | next(); | ||
244 | }], () => { | ||
245 | done(); | ||
246 | }); | ||
247 | }); | ||
248 | |||
124 | it('check correctly', (done) => { | 249 | it('check correctly', (done) => { |
125 | const picker = renderPicker(); | 250 | const picker = renderPicker(); |
126 | expect(picker.state.open).not.to.be.ok(); | 251 | expect(picker.state.open).not.to.be.ok(); |
diff --git a/tests/Select.spec.jsx b/tests/Select.spec.jsx index 7e53c31..f7717c7 100644 --- a/tests/Select.spec.jsx +++ b/tests/Select.spec.jsx | |||
@@ -29,7 +29,7 @@ describe('Select', () => { | |||
29 | formatter={formatter} | 29 | formatter={formatter} |
30 | locale={TimePickerLocale} | 30 | locale={TimePickerLocale} |
31 | showSecond={showSecond} | 31 | showSecond={showSecond} |
32 | defaultValue={formatTime('01:02:03', formatter)} | 32 | defaultValue={formatTime('01:02:04', formatter)} |
33 | {...props} | 33 | {...props} |
34 | />, container); | 34 | />, container); |
35 | } | 35 | } |
@@ -89,19 +89,19 @@ describe('Select', () => { | |||
89 | }, (next) => { | 89 | }, (next) => { |
90 | expect(picker.state.open).to.be(true); | 90 | expect(picker.state.open).to.be(true); |
91 | header = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-input')[0]; | 91 | header = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-input')[0]; |
92 | const selector = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-select')[0]; | ||
93 | const option = selector.getElementsByTagName('li')[19]; | ||
94 | expect(header).to.be.ok(); | 92 | expect(header).to.be.ok(); |
95 | expect(ReactDOM.findDOMNode(header).value).to.be('01:02:03'); | 93 | expect(ReactDOM.findDOMNode(header).value).to.be('01:02:04'); |
96 | expect(ReactDOM.findDOMNode(input).value).to.be('01:02:03'); | 94 | expect(ReactDOM.findDOMNode(input).value).to.be('01:02:04'); |
97 | 95 | ||
96 | const selector = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-select')[0]; | ||
97 | const option = selector.getElementsByTagName('li')[19]; | ||
98 | Simulate.click(option); | 98 | Simulate.click(option); |
99 | setTimeout(next, 100); | 99 | setTimeout(next, 100); |
100 | }, (next) => { | 100 | }, (next) => { |
101 | expect(change).to.be.ok(); | 101 | expect(change).to.be.ok(); |
102 | expect(change.getHourOfDay()).to.be(19); | 102 | expect(change.getHourOfDay()).to.be(19); |
103 | expect(ReactDOM.findDOMNode(header).value).to.be('19:02:03'); | 103 | expect(ReactDOM.findDOMNode(header).value).to.be('19:02:04'); |
104 | expect(ReactDOM.findDOMNode(input).value).to.be('19:02:03'); | 104 | expect(ReactDOM.findDOMNode(input).value).to.be('19:02:04'); |
105 | expect(picker.state.open).to.be.ok(); | 105 | expect(picker.state.open).to.be.ok(); |
106 | 106 | ||
107 | next(); | 107 | next(); |
@@ -128,19 +128,19 @@ describe('Select', () => { | |||
128 | }, (next) => { | 128 | }, (next) => { |
129 | expect(picker.state.open).to.be(true); | 129 | expect(picker.state.open).to.be(true); |
130 | header = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-input')[0]; | 130 | header = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-input')[0]; |
131 | const selector = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-select')[1]; | ||
132 | const option = selector.getElementsByTagName('li')[19]; | ||
133 | expect(header).to.be.ok(); | 131 | expect(header).to.be.ok(); |
134 | expect(ReactDOM.findDOMNode(header).value).to.be('01:02:03'); | 132 | expect(ReactDOM.findDOMNode(header).value).to.be('01:02:04'); |
135 | expect(ReactDOM.findDOMNode(input).value).to.be('01:02:03'); | 133 | expect(ReactDOM.findDOMNode(input).value).to.be('01:02:04'); |
136 | 134 | ||
135 | const selector = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-select')[1]; | ||
136 | const option = selector.getElementsByTagName('li')[19]; | ||
137 | Simulate.click(option); | 137 | Simulate.click(option); |
138 | setTimeout(next, 100); | 138 | setTimeout(next, 100); |
139 | }, (next) => { | 139 | }, (next) => { |
140 | expect(change).to.be.ok(); | 140 | expect(change).to.be.ok(); |
141 | expect(change.getMinutes()).to.be(19); | 141 | expect(change.getMinutes()).to.be(19); |
142 | expect(ReactDOM.findDOMNode(header).value).to.be('01:19:03'); | 142 | expect(ReactDOM.findDOMNode(header).value).to.be('01:19:04'); |
143 | expect(ReactDOM.findDOMNode(input).value).to.be('01:19:03'); | 143 | expect(ReactDOM.findDOMNode(input).value).to.be('01:19:04'); |
144 | expect(picker.state.open).to.be.ok(); | 144 | expect(picker.state.open).to.be.ok(); |
145 | 145 | ||
146 | next(); | 146 | next(); |
@@ -167,12 +167,12 @@ describe('Select', () => { | |||
167 | }, (next) => { | 167 | }, (next) => { |
168 | expect(picker.state.open).to.be(true); | 168 | expect(picker.state.open).to.be(true); |
169 | header = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-input')[0]; | 169 | header = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-input')[0]; |
170 | const selector = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-select')[2]; | ||
171 | const option = selector.getElementsByTagName('li')[19]; | ||
172 | expect(header).to.be.ok(); | 170 | expect(header).to.be.ok(); |
173 | expect(ReactDOM.findDOMNode(header).value).to.be('01:02:03'); | 171 | expect(ReactDOM.findDOMNode(header).value).to.be('01:02:04'); |
174 | expect(ReactDOM.findDOMNode(input).value).to.be('01:02:03'); | 172 | expect(ReactDOM.findDOMNode(input).value).to.be('01:02:04'); |
175 | 173 | ||
174 | const selector = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-select')[2]; | ||
175 | const option = selector.getElementsByTagName('li')[19]; | ||
176 | Simulate.click(option); | 176 | Simulate.click(option); |
177 | setTimeout(next, 100); | 177 | setTimeout(next, 100); |
178 | }, (next) => { | 178 | }, (next) => { |
@@ -187,5 +187,124 @@ describe('Select', () => { | |||
187 | done(); | 187 | done(); |
188 | }); | 188 | }); |
189 | }); | 189 | }); |
190 | |||
191 | it('disabled correctly', (done) => { | ||
192 | let change; | ||
193 | const picker = renderPicker({ | ||
194 | onChange(v) { | ||
195 | change = v; | ||
196 | }, | ||
197 | disabledMinutes(h) { | ||
198 | return [h]; | ||
199 | }, | ||
200 | disabledSeconds(h, m) { | ||
201 | return [h + m % 60]; | ||
202 | }, | ||
203 | }); | ||
204 | expect(picker.state.open).not.to.be.ok(); | ||
205 | const input = TestUtils.scryRenderedDOMComponentsWithClass(picker, 'rc-time-picker-input')[0]; | ||
206 | let header; | ||
207 | async.series([(next) => { | ||
208 | expect(picker.state.open).to.be(false); | ||
209 | |||
210 | Simulate.click(input); | ||
211 | setTimeout(next, 100); | ||
212 | }, (next) => { | ||
213 | expect(picker.state.open).to.be(true); | ||
214 | header = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-input')[0]; | ||
215 | expect(header).to.be.ok(); | ||
216 | expect(ReactDOM.findDOMNode(header).value).to.be('01:02:04'); | ||
217 | expect(ReactDOM.findDOMNode(input).value).to.be('01:02:04'); | ||
218 | |||
219 | const selector = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-select')[1]; | ||
220 | const option = selector.getElementsByTagName('li')[1]; | ||
221 | Simulate.click(option); | ||
222 | setTimeout(next, 100); | ||
223 | }, (next) => { | ||
224 | expect(change).not.to.be.ok(); | ||
225 | expect(ReactDOM.findDOMNode(header).value).to.be('01:02:04'); | ||
226 | expect(ReactDOM.findDOMNode(input).value).to.be('01:02:04'); | ||
227 | expect(picker.state.open).to.be.ok(); | ||
228 | |||
229 | const selector = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-select')[2]; | ||
230 | const option = selector.getElementsByTagName('li')[3]; | ||
231 | Simulate.click(option); | ||
232 | setTimeout(next, 100); | ||
233 | }, (next) => { | ||
234 | expect(change).not.to.be.ok(); | ||
235 | expect(ReactDOM.findDOMNode(header).value).to.be('01:02:04'); | ||
236 | expect(ReactDOM.findDOMNode(input).value).to.be('01:02:04'); | ||
237 | expect(picker.state.open).to.be.ok(); | ||
238 | |||
239 | const selector = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-select')[1]; | ||
240 | const option = selector.getElementsByTagName('li')[7]; | ||
241 | Simulate.click(option); | ||
242 | setTimeout(next, 100); | ||
243 | }, (next) => { | ||
244 | expect(change).to.be.ok(); | ||
245 | expect(change.getMinutes()).to.be(7); | ||
246 | expect(ReactDOM.findDOMNode(header).value).to.be('01:07:04'); | ||
247 | expect(ReactDOM.findDOMNode(input).value).to.be('01:07:04'); | ||
248 | expect(picker.state.open).to.be.ok(); | ||
249 | |||
250 | next(); | ||
251 | }], () => { | ||
252 | done(); | ||
253 | }); | ||
254 | }); | ||
255 | |||
256 | it('hidden correctly', (done) => { | ||
257 | let change; | ||
258 | const picker = renderPicker({ | ||
259 | onChange(v) { | ||
260 | change = v; | ||
261 | }, | ||
262 | disabledHours() { | ||
263 | return [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23]; | ||
264 | }, | ||
265 | hideDisabledOptions: true, | ||
266 | }); | ||
267 | expect(picker.state.open).not.to.be.ok(); | ||
268 | const input = TestUtils.scryRenderedDOMComponentsWithClass(picker, 'rc-time-picker-input')[0]; | ||
269 | let header; | ||
270 | async.series([(next) => { | ||
271 | expect(picker.state.open).to.be(false); | ||
272 | |||
273 | Simulate.click(input); | ||
274 | setTimeout(next, 100); | ||
275 | }, (next) => { | ||
276 | expect(picker.state.open).to.be(true); | ||
277 | header = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-input')[0]; | ||
278 | expect(header).to.be.ok(); | ||
279 | expect(ReactDOM.findDOMNode(header).value).to.be('01:02:04'); | ||
280 | expect(ReactDOM.findDOMNode(input).value).to.be('01:02:04'); | ||
281 | |||
282 | const selector = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-select')[0]; | ||
283 | const option = selector.getElementsByTagName('li')[3]; | ||
284 | Simulate.click(option); | ||
285 | setTimeout(next, 100); | ||
286 | }, (next) => { | ||
287 | expect(change).to.be.ok(); | ||
288 | expect(change.getHourOfDay()).to.be(6); | ||
289 | expect(ReactDOM.findDOMNode(header).value).to.be('06:02:04'); | ||
290 | expect(ReactDOM.findDOMNode(input).value).to.be('06:02:04'); | ||
291 | expect(picker.state.open).to.be.ok(); | ||
292 | |||
293 | const selector = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-select')[0]; | ||
294 | const option = selector.getElementsByTagName('li')[4]; | ||
295 | Simulate.click(option); | ||
296 | setTimeout(next, 100); | ||
297 | }, (next) => { | ||
298 | expect(change).to.be.ok(); | ||
299 | expect(change.getHourOfDay()).to.be(8); | ||
300 | expect(ReactDOM.findDOMNode(header).value).to.be('08:02:04'); | ||
301 | expect(ReactDOM.findDOMNode(input).value).to.be('08:02:04'); | ||
302 | expect(picker.state.open).to.be.ok(); | ||
303 | |||
304 | next(); | ||
305 | }], () => { | ||
306 | done(); | ||
307 | }); | ||
308 | }); | ||
190 | }); | 309 | }); |
191 | }); | 310 | }); |