X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=tests%2FSelect.spec.jsx;h=2a15e7c0174892e44d1f6d67ee593e66b286b52e;hb=73a24157501c8d75aac94b3f6c913c754d46e94f;hp=2d300987fe2175c60ecfbae6ea642a6f7d53ccb9;hpb=17444974eff819b0a5c29ae7d5f37242bf407f89;p=github%2Ffretlink%2Ftime-picker.git diff --git a/tests/Select.spec.jsx b/tests/Select.spec.jsx index 2d30098..2a15e7c 100644 --- a/tests/Select.spec.jsx +++ b/tests/Select.spec.jsx @@ -1,12 +1,14 @@ import ReactDOM from 'react-dom'; import React from 'react'; import TimePicker from '../src/TimePicker'; -import TestUtils from 'react-addons-test-utils'; +import TestUtils from 'react-dom/test-utils'; const Simulate = TestUtils.Simulate; import expect from 'expect.js'; import async from 'async'; import moment from 'moment'; +const map = (arr, fn) => Array.prototype.map.call(arr, fn); + describe('Select', () => { let container; @@ -59,6 +61,38 @@ describe('Select', () => { done(); }); }); + + it('shows only numbers according to step props', (done) => { + const picker = renderPicker({ + hourStep: 5, + minuteStep: 15, + secondStep: 21, + }); + const input = TestUtils.scryRenderedDOMComponentsWithClass(picker, + 'rc-time-picker-input')[0]; + async.series([(next) => { + Simulate.click(input); + setTimeout(next, 100); + }, (next) => { + const selectors = TestUtils.scryRenderedDOMComponentsWithClass(picker.panelInstance, + 'rc-time-picker-panel-select'); + + const hourSelector = selectors[0]; + const minuteSelector = selectors[1]; + const secondSelector = selectors[2]; + + const hours = map(hourSelector.getElementsByTagName('li'), (li) => li.innerHTML); + expect(hours).to.eql(['00', '05', '10', '15', '20']); + + const minutes = map(minuteSelector.getElementsByTagName('li'), (li) => li.innerHTML); + expect(minutes).to.eql(['00', '15', '30', '45']); + + const seconds = map(secondSelector.getElementsByTagName('li'), (li) => li.innerHTML); + expect(seconds).to.eql(['00', '21', '42']); + + next(); + }], done); + }); }); describe('select number', () => {