Commit fe5108cd664ca5d7feecd0f1ec6588f2d7134b08
1 parent
9b376832
Add Time-Picker unit tests
Showing
1 changed file
with
60 additions
and
0 deletions
Show diff stats
| 1 | +import { createVue, destroyVM } from '../util'; | ||
| 2 | + | ||
| 3 | +describe('TimePicker.vue', () => { | ||
| 4 | + let vm; | ||
| 5 | + afterEach(() => { | ||
| 6 | + destroyVM(vm); | ||
| 7 | + }); | ||
| 8 | + | ||
| 9 | + it('should create a TimePicker component with hours, minutes and seconds', done => { | ||
| 10 | + vm = createVue(` | ||
| 11 | + <Time-Picker></Time-Picker> | ||
| 12 | + `); | ||
| 13 | + const picker = vm.$children[0]; | ||
| 14 | + picker.handleIconClick(); // open the picker panels | ||
| 15 | + | ||
| 16 | + vm.$nextTick(() => { | ||
| 17 | + const spiners = picker.$el.querySelectorAll('.ivu-time-picker-cells-list'); | ||
| 18 | + expect(spiners.length).to.equal(3); // hh:mm:ss | ||
| 19 | + expect(spiners[0].querySelectorAll('.ivu-time-picker-cells-cell').length).to.equal(24); | ||
| 20 | + expect(spiners[1].querySelectorAll('.ivu-time-picker-cells-cell').length).to.equal(60); | ||
| 21 | + expect(spiners[2].querySelectorAll('.ivu-time-picker-cells-cell').length).to.equal(60); | ||
| 22 | + done(); | ||
| 23 | + }); | ||
| 24 | + }); | ||
| 25 | + | ||
| 26 | + it('should create a TimePicker component with only hours and minutes', done => { | ||
| 27 | + vm = createVue(` | ||
| 28 | + <Time-Picker format="HH:mm"></Time-Picker> | ||
| 29 | + `); | ||
| 30 | + const picker = vm.$children[0]; | ||
| 31 | + picker.handleIconClick(); // open the picker panels | ||
| 32 | + | ||
| 33 | + vm.$nextTick(() => { | ||
| 34 | + const spiners = picker.$el.querySelectorAll('.ivu-time-picker-cells-list'); | ||
| 35 | + expect([...spiners].filter(el => el.style.display != 'none').length).to.equal(2); // hh:mm | ||
| 36 | + expect(spiners[0].querySelectorAll('.ivu-time-picker-cells-cell').length).to.equal(24); | ||
| 37 | + expect(spiners[1].querySelectorAll('.ivu-time-picker-cells-cell').length).to.equal(60); | ||
| 38 | + done(); | ||
| 39 | + }); | ||
| 40 | + }); | ||
| 41 | + | ||
| 42 | + it('should create a TimePicker component with steps of 15 minutes', done => { | ||
| 43 | + vm = createVue(` | ||
| 44 | + <Time-Picker :steps="[1, 15]"></Time-Picker> | ||
| 45 | + `); | ||
| 46 | + const picker = vm.$children[0]; | ||
| 47 | + picker.handleIconClick(); // open the picker panels | ||
| 48 | + | ||
| 49 | + vm.$nextTick(() => { | ||
| 50 | + const spiners = picker.$el.querySelectorAll('.ivu-time-picker-cells-list'); | ||
| 51 | + const minutesList = [...spiners[1].querySelectorAll('.ivu-time-picker-cells-cell')]; | ||
| 52 | + | ||
| 53 | + expect(spiners[0].querySelectorAll('.ivu-time-picker-cells-cell').length).to.equal(24); | ||
| 54 | + expect(minutesList.map(el => el.textContent).join(',')).to.equal('00,15,30,45'); | ||
| 55 | + expect(spiners[1].querySelectorAll('.ivu-time-picker-cells-cell').length).to.equal(4); | ||
| 56 | + expect(spiners[2].querySelectorAll('.ivu-time-picker-cells-cell').length).to.equal(60); | ||
| 57 | + done(); | ||
| 58 | + }); | ||
| 59 | + }); | ||
| 60 | +}); |