diff options
Diffstat (limited to 'tests/Select.spec.jsx')
-rw-r--r-- | tests/Select.spec.jsx | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/tests/Select.spec.jsx b/tests/Select.spec.jsx index 2a15e7c..f414c18 100644 --- a/tests/Select.spec.jsx +++ b/tests/Select.spec.jsx | |||
@@ -552,5 +552,125 @@ describe('Select', () => { | |||
552 | done(); | 552 | done(); |
553 | }); | 553 | }); |
554 | }); | 554 | }); |
555 | |||
556 | it('disabled correctly', done => { | ||
557 | let change; | ||
558 | const picker = renderPicker({ | ||
559 | use12Hours: true, | ||
560 | format: undefined, | ||
561 | onChange(v) { | ||
562 | change = v; | ||
563 | }, | ||
564 | disabledHours() { | ||
565 | return [0, 2, 6, 18, 12]; | ||
566 | }, | ||
567 | defaultValue: moment() | ||
568 | .hour(0) | ||
569 | .minute(0) | ||
570 | .second(0), | ||
571 | showSecond: false, | ||
572 | }); | ||
573 | expect(picker.state.open).not.to.be.ok(); | ||
574 | const input = TestUtils.scryRenderedDOMComponentsWithClass(picker, 'rc-time-picker-input')[0]; | ||
575 | let header; | ||
576 | async.series( | ||
577 | [ | ||
578 | next => { | ||
579 | expect(picker.state.open).to.be(false); | ||
580 | |||
581 | Simulate.click(input); | ||
582 | setTimeout(next, 100); | ||
583 | }, | ||
584 | next => { | ||
585 | expect(picker.state.open).to.be(true); | ||
586 | header = TestUtils.scryRenderedDOMComponentsWithClass( | ||
587 | picker.panelInstance, | ||
588 | 'rc-time-picker-panel-input', | ||
589 | )[0]; | ||
590 | expect(header).to.be.ok(); | ||
591 | expect(header.value).to.be('12:00 am'); | ||
592 | expect(input.value).to.be('12:00 am'); | ||
593 | |||
594 | const selector = TestUtils.scryRenderedDOMComponentsWithClass( | ||
595 | picker.panelInstance, | ||
596 | 'rc-time-picker-panel-select', | ||
597 | )[0]; | ||
598 | const option = selector.getElementsByTagName('li')[2]; | ||
599 | Simulate.click(option); | ||
600 | setTimeout(next, 100); | ||
601 | }, | ||
602 | next => { | ||
603 | expect(change).not.to.be.ok(); | ||
604 | expect(header.value).to.be('12:00 am'); | ||
605 | expect(input.value).to.be('12:00 am'); | ||
606 | expect(picker.state.open).to.be.ok(); | ||
607 | |||
608 | const selector = TestUtils.scryRenderedDOMComponentsWithClass( | ||
609 | picker.panelInstance, | ||
610 | 'rc-time-picker-panel-select', | ||
611 | )[0]; | ||
612 | const option = selector.getElementsByTagName('li')[5]; | ||
613 | Simulate.click(option); | ||
614 | setTimeout(next, 100); | ||
615 | }, | ||
616 | next => { | ||
617 | expect(change).to.be.ok(); | ||
618 | expect(change.hour()).to.be(5); | ||
619 | expect(header.value).to.be('5:00 am'); | ||
620 | expect(input.value).to.be('5:00 am'); | ||
621 | expect(picker.state.open).to.be.ok(); | ||
622 | |||
623 | const selector = TestUtils.scryRenderedDOMComponentsWithClass( | ||
624 | picker.panelInstance, | ||
625 | 'rc-time-picker-panel-select', | ||
626 | )[2]; | ||
627 | Simulate.click(selector.getElementsByTagName('li')[1]); | ||
628 | |||
629 | setTimeout(next, 200); | ||
630 | change = null; | ||
631 | }, | ||
632 | next => { | ||
633 | expect(change).not.to.be.ok(); | ||
634 | expect(header.value).to.be('5:00 pm'); | ||
635 | expect(input.value).to.be('5:00 pm'); | ||
636 | expect(picker.state.open).to.be.ok(); | ||
637 | |||
638 | const selector = TestUtils.scryRenderedDOMComponentsWithClass( | ||
639 | picker.panelInstance, | ||
640 | 'rc-time-picker-panel-select', | ||
641 | )[0]; | ||
642 | const option = selector.getElementsByTagName('li')[0]; | ||
643 | Simulate.click(option); | ||
644 | setTimeout(next, 100); | ||
645 | }, | ||
646 | next => { | ||
647 | expect(change).not.to.be.ok(); | ||
648 | expect(header.value).to.be('5:00 pm'); | ||
649 | expect(input.value).to.be('5:00 pm'); | ||
650 | expect(picker.state.open).to.be.ok(); | ||
651 | |||
652 | const selector = TestUtils.scryRenderedDOMComponentsWithClass( | ||
653 | picker.panelInstance, | ||
654 | 'rc-time-picker-panel-select', | ||
655 | )[0]; | ||
656 | const option = selector.getElementsByTagName('li')[5]; | ||
657 | Simulate.click(option); | ||
658 | setTimeout(next, 100); | ||
659 | }, | ||
660 | next => { | ||
661 | expect(change).to.be.ok(); | ||
662 | expect(change.hour()).to.be(17); | ||
663 | expect(header.value).to.be('5:00 pm'); | ||
664 | expect(input.value).to.be('5:00 pm'); | ||
665 | expect(picker.state.open).to.be.ok(); | ||
666 | |||
667 | next(); | ||
668 | }, | ||
669 | ], | ||
670 | () => { | ||
671 | done(); | ||
672 | }, | ||
673 | ); | ||
674 | }); | ||
555 | }); | 675 | }); |
556 | }); | 676 | }); |