diff options
Diffstat (limited to 'tests/TimePicker.spec.jsx')
-rw-r--r-- | tests/TimePicker.spec.jsx | 101 |
1 files changed, 47 insertions, 54 deletions
diff --git a/tests/TimePicker.spec.jsx b/tests/TimePicker.spec.jsx index 5bd056e..95a1fd1 100644 --- a/tests/TimePicker.spec.jsx +++ b/tests/TimePicker.spec.jsx | |||
@@ -3,21 +3,27 @@ import React from 'react'; | |||
3 | import TimePicker from '../src/TimePicker'; | 3 | import TimePicker from '../src/TimePicker'; |
4 | 4 | ||
5 | import TestUtils from 'react-addons-test-utils'; | 5 | import TestUtils from 'react-addons-test-utils'; |
6 | var Simulate = TestUtils.Simulate; | 6 | const Simulate = TestUtils.Simulate; |
7 | import expect from 'expect.js'; | 7 | import expect from 'expect.js'; |
8 | import async from 'async'; | 8 | import async from 'async'; |
9 | 9 | ||
10 | import DateTimeFormat from 'gregorian-calendar-format'; | 10 | import DateTimeFormat from 'gregorian-calendar-format'; |
11 | import GregorianCalendar from 'gregorian-calendar'; | ||
12 | import zhCn from 'gregorian-calendar/lib/locale/zh_CN'; | 11 | import zhCn from 'gregorian-calendar/lib/locale/zh_CN'; |
13 | import TimePickerLocale from '../src/locale/zh_CN'; | 12 | import TimePickerLocale from '../src/locale/zh_CN'; |
14 | 13 | ||
15 | describe('TimePicker', function () { | 14 | function formatTime(time, formatter) { |
16 | var container; | 15 | return formatter.parse(time, { |
16 | locale: zhCn, | ||
17 | obeyCount: true, | ||
18 | }); | ||
19 | } | ||
20 | |||
21 | describe('TimePicker', () => { | ||
22 | let container; | ||
17 | 23 | ||
18 | function renderPicker(props) { | 24 | function renderPicker(props) { |
19 | var showSecond = true; | 25 | const showSecond = true; |
20 | var formatter = new DateTimeFormat('HH:mm:ss'); | 26 | const formatter = new DateTimeFormat('HH:mm:ss'); |
21 | 27 | ||
22 | return ReactDOM.render( | 28 | return ReactDOM.render( |
23 | <TimePicker | 29 | <TimePicker |
@@ -30,8 +36,8 @@ describe('TimePicker', function () { | |||
30 | } | 36 | } |
31 | 37 | ||
32 | function renderPickerWithoutSeconds(props) { | 38 | function renderPickerWithoutSeconds(props) { |
33 | var showSecond = false; | 39 | const showSecond = false; |
34 | var formatter = new DateTimeFormat('HH:mm'); | 40 | const formatter = new DateTimeFormat('HH:mm'); |
35 | 41 | ||
36 | return ReactDOM.render( | 42 | return ReactDOM.render( |
37 | <TimePicker | 43 | <TimePicker |
@@ -43,44 +49,37 @@ describe('TimePicker', function () { | |||
43 | />, container); | 49 | />, container); |
44 | } | 50 | } |
45 | 51 | ||
46 | function formatTime(time, formatter) { | 52 | beforeEach(() => { |
47 | return formatter.parse(time, { | ||
48 | locale: zhCn, | ||
49 | obeyCount: true, | ||
50 | }); | ||
51 | } | ||
52 | |||
53 | beforeEach(function () { | ||
54 | container = document.createElement('div'); | 53 | container = document.createElement('div'); |
55 | document.body.appendChild(container); | 54 | document.body.appendChild(container); |
56 | }); | 55 | }); |
57 | 56 | ||
58 | afterEach(function () { | 57 | afterEach(() => { |
59 | ReactDOM.unmountComponentAtNode(container); | 58 | ReactDOM.unmountComponentAtNode(container); |
60 | document.body.removeChild(container); | 59 | document.body.removeChild(container); |
61 | }); | 60 | }); |
62 | 61 | ||
63 | describe('render panel to body', function () { | 62 | describe('render panel to body', () => { |
64 | it('popup correctly', function (done) { | 63 | it('popup correctly', (done) => { |
65 | var change; | 64 | let change; |
66 | var picker = renderPicker({ | 65 | const picker = renderPicker({ |
67 | onChange: function (v) { | 66 | onChange(v) { |
68 | change = v; | 67 | change = v; |
69 | } | 68 | }, |
70 | }); | 69 | }); |
71 | expect(picker.state.open).not.to.be.ok(); | 70 | expect(picker.state.open).not.to.be.ok(); |
72 | var input = TestUtils.scryRenderedDOMComponentsWithClass(picker, 'rc-time-picker-input')[0]; | 71 | const input = TestUtils.scryRenderedDOMComponentsWithClass(picker, 'rc-time-picker-input')[0]; |
73 | expect(ReactDOM.findDOMNode(input).value).to.be('12:57:58'); | 72 | expect(ReactDOM.findDOMNode(input).value).to.be('12:57:58'); |
74 | async.series([function (next) { | 73 | async.series([(next) => { |
75 | Simulate.click(input); | 74 | Simulate.click(input); |
76 | setTimeout(next, 100); | 75 | setTimeout(next, 100); |
77 | }, function (next) { | 76 | }, (next) => { |
78 | expect(TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-inner')[0]).to.be.ok(); | 77 | expect(TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-inner')[0]).to.be.ok(); |
79 | expect(picker.state.open).to.be(true); | 78 | expect(picker.state.open).to.be(true); |
80 | var hour = TestUtils.scryRenderedDOMComponentsWithTag(picker.panelInstance, 'li')[1]; | 79 | const hour = TestUtils.scryRenderedDOMComponentsWithTag(picker.panelInstance, 'li')[1]; |
81 | Simulate.click(hour); | 80 | Simulate.click(hour); |
82 | setTimeout(next, 100); | 81 | setTimeout(next, 100); |
83 | }, function (next) { | 82 | }, (next) => { |
84 | expect(change).to.be.ok(); | 83 | expect(change).to.be.ok(); |
85 | expect(change.getHourOfDay()).to.be(1); | 84 | expect(change.getHourOfDay()).to.be(1); |
86 | expect(change.getMinutes()).to.be(57); | 85 | expect(change.getMinutes()).to.be(57); |
@@ -88,24 +87,19 @@ describe('TimePicker', function () { | |||
88 | expect(ReactDOM.findDOMNode(input).value).to.be('01:57:58'); | 87 | expect(ReactDOM.findDOMNode(input).value).to.be('01:57:58'); |
89 | expect(picker.state.open).to.be.ok(); | 88 | expect(picker.state.open).to.be.ok(); |
90 | next(); | 89 | next(); |
91 | }], function () { | 90 | }], () => { |
92 | done(); | 91 | done(); |
93 | }); | 92 | }); |
94 | }); | 93 | }); |
95 | 94 | ||
96 | it('destroy correctly', function (done) { | 95 | it('destroy correctly', (done) => { |
97 | var change; | 96 | const picker = renderPicker(); |
98 | var picker = renderPicker({ | ||
99 | onChange: function (v) { | ||
100 | change = v; | ||
101 | } | ||
102 | }); | ||
103 | expect(picker.state.open).not.to.be.ok(); | 97 | expect(picker.state.open).not.to.be.ok(); |
104 | var input = TestUtils.scryRenderedDOMComponentsWithClass(picker, 'rc-time-picker-input')[0]; | 98 | const input = TestUtils.scryRenderedDOMComponentsWithClass(picker, 'rc-time-picker-input')[0]; |
105 | async.series([function (next) { | 99 | async.series([(next) => { |
106 | Simulate.click(input); | 100 | Simulate.click(input); |
107 | setTimeout(next, 100); | 101 | setTimeout(next, 100); |
108 | }, function (next) { | 102 | }, (next) => { |
109 | expect(TestUtils.scryRenderedDOMComponentsWithClass(picker, 'rc-time-picker-panel-inner')[0]).not.to.be.ok(); | 103 | expect(TestUtils.scryRenderedDOMComponentsWithClass(picker, 'rc-time-picker-panel-inner')[0]).not.to.be.ok(); |
110 | expect(picker.state.open).to.be(true); | 104 | expect(picker.state.open).to.be(true); |
111 | if (document.querySelectorAll) { | 105 | if (document.querySelectorAll) { |
@@ -114,49 +108,48 @@ describe('TimePicker', function () { | |||
114 | expect(TestUtils.scryRenderedDOMComponentsWithTag(picker.panelInstance, 'li')[0]).to.be.ok(); | 108 | expect(TestUtils.scryRenderedDOMComponentsWithTag(picker.panelInstance, 'li')[0]).to.be.ok(); |
115 | ReactDOM.unmountComponentAtNode(container); | 109 | ReactDOM.unmountComponentAtNode(container); |
116 | setTimeout(next, 100); | 110 | setTimeout(next, 100); |
117 | }, function (next) { | 111 | }, (next) => { |
118 | if (document.querySelectorAll) { | 112 | if (document.querySelectorAll) { |
119 | expect(document.querySelectorAll('.rc-time-picker').length).to.be(0); | 113 | expect(document.querySelectorAll('.rc-time-picker').length).to.be(0); |
120 | } | 114 | } |
121 | expect(picker.panelInstance).not.to.be.ok(); | 115 | expect(picker.panelInstance).not.to.be.ok(); |
122 | next(); | 116 | next(); |
123 | }], function () { | 117 | }], () => { |
124 | done(); | 118 | done(); |
125 | }); | 119 | }); |
126 | }); | 120 | }); |
127 | }); | 121 | }); |
128 | 122 | ||
129 | describe('render panel to body (without seconds)', function () { | 123 | describe('render panel to body (without seconds)', () => { |
130 | it('popup correctly', function (done) { | 124 | it('popup correctly', (done) => { |
131 | var change; | 125 | let change; |
132 | var picker = renderPickerWithoutSeconds({ | 126 | const picker = renderPickerWithoutSeconds({ |
133 | onChange: function (v) { | 127 | onChange(v) { |
134 | change = v; | 128 | change = v; |
135 | } | 129 | }, |
136 | }); | 130 | }); |
137 | expect(picker.state.open).not.to.be.ok(); | 131 | expect(picker.state.open).not.to.be.ok(); |
138 | var input = TestUtils.scryRenderedDOMComponentsWithClass(picker, 'rc-time-picker-input')[0]; | 132 | const input = TestUtils.scryRenderedDOMComponentsWithClass(picker, 'rc-time-picker-input')[0]; |
139 | expect(ReactDOM.findDOMNode(input).value).to.be('08:24'); | 133 | expect(ReactDOM.findDOMNode(input).value).to.be('08:24'); |
140 | async.series([function (next) { | 134 | async.series([(next) => { |
141 | Simulate.click(input); | 135 | Simulate.click(input); |
142 | setTimeout(next, 100); | 136 | setTimeout(next, 100); |
143 | }, function (next) { | 137 | }, (next) => { |
144 | expect(TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-inner')[0]).to.be.ok(); | 138 | expect(TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, 'rc-time-picker-panel-inner')[0]).to.be.ok(); |
145 | expect(picker.state.open).to.be(true); | 139 | expect(picker.state.open).to.be(true); |
146 | var hour = TestUtils.scryRenderedDOMComponentsWithTag(picker.panelInstance, 'li')[1]; | 140 | const hour = TestUtils.scryRenderedDOMComponentsWithTag(picker.panelInstance, 'li')[1]; |
147 | Simulate.click(hour); | 141 | Simulate.click(hour); |
148 | setTimeout(next, 100); | 142 | setTimeout(next, 100); |
149 | }, function (next) { | 143 | }, (next) => { |
150 | expect(change).to.be.ok(); | 144 | expect(change).to.be.ok(); |
151 | expect(change.getHourOfDay()).to.be(1); | 145 | expect(change.getHourOfDay()).to.be(1); |
152 | expect(change.getMinutes()).to.be(24); | 146 | expect(change.getMinutes()).to.be(24); |
153 | expect(ReactDOM.findDOMNode(input).value).to.be('01:24'); | 147 | expect(ReactDOM.findDOMNode(input).value).to.be('01:24'); |
154 | expect(picker.state.open).to.be.ok(); | 148 | expect(picker.state.open).to.be.ok(); |
155 | next(); | 149 | next(); |
156 | }], function () { | 150 | }], () => { |
157 | done(); | 151 | done(); |
158 | }); | 152 | }); |
159 | }); | 153 | }); |
160 | }); | 154 | }); |
161 | |||
162 | }); | 155 | }); |