Commit 5426dcf989a12b5b99458cf6f0c498d3d0e778d4
1 parent
d9ff845f
fix specs, fix merge conflicts and cleanup
Showing
8 changed files
with
36 additions
and
17 deletions
Show diff stats
package-lock.json
... | ... | @@ -7169,6 +7169,11 @@ |
7169 | 7169 | "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=", |
7170 | 7170 | "dev": true |
7171 | 7171 | }, |
7172 | + "js-calendar": { | |
7173 | + "version": "1.2.3", | |
7174 | + "resolved": "https://registry.npmjs.org/js-calendar/-/js-calendar-1.2.3.tgz", | |
7175 | + "integrity": "sha512-dAA1/Zbp4+c5E+ARCVTIuKepXsNLzSYfzvOimiYD4S5eeP9QuplSHLcdhfqFSwyM1o1u6ku6RRRCyaZ0YAjiBw==" | |
7176 | + }, | |
7172 | 7177 | "js-tokens": { |
7173 | 7178 | "version": "3.0.2", |
7174 | 7179 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", |
... | ... |
package.json
src/components/date-picker/base/date-table.vue
src/components/date-picker/base/mixin.js
1 | 1 | |
2 | +import {clearHours} from '../util'; | |
3 | + | |
2 | 4 | export default { |
3 | 5 | props: { |
4 | 6 | tableDate: { |
... | ... | @@ -36,7 +38,7 @@ export default { |
36 | 38 | methods: { |
37 | 39 | handleClick (cell) { |
38 | 40 | if (cell.disabled) return; |
39 | - const newDate = cell.date; | |
41 | + const newDate = new Date(clearHours(cell.date)); | |
40 | 42 | |
41 | 43 | this.$emit('on-pick', newDate); |
42 | 44 | this.$emit('on-pick-click'); |
... | ... |
src/components/date-picker/panel/Date/date-range.vue
src/components/date-picker/panel/Time/time-range.vue
src/components/date-picker/util.js
... | ... | @@ -222,7 +222,6 @@ export const TYPE_VALUE_RESOLVER_MAP = { |
222 | 222 | }, |
223 | 223 | multiple: { |
224 | 224 | formatter: (value, format) => { |
225 | - console.log(value, format); | |
226 | 225 | return value.filter(Boolean).map(date => formatDate(date, format)).join(','); |
227 | 226 | }, |
228 | 227 | parser: (text, format) => text.split(',').map(string => parseDate(string.trim(), format)) |
... | ... |
test/unit/specs/date-picker.spec.js
... | ... | @@ -11,7 +11,7 @@ describe('DatePicker.vue', () => { |
11 | 11 | <Date-Picker></Date-Picker> |
12 | 12 | `); |
13 | 13 | const picker = vm.$children[0]; |
14 | - picker.showPicker(); | |
14 | + picker.$el.querySelector('input.ivu-input').focus(); | |
15 | 15 | vm.$nextTick(() => { |
16 | 16 | const calendarBody = vm.$el.querySelector('.ivu-picker-panel-body .ivu-date-picker-cells:first-of-type'); |
17 | 17 | const calendarCells = [...calendarBody.querySelectorAll('.ivu-date-picker-cells-cell')].filter(el => { |
... | ... | @@ -20,7 +20,7 @@ describe('DatePicker.vue', () => { |
20 | 20 | return !prevMonth && !nextMonth; |
21 | 21 | }); |
22 | 22 | const today = new Date(); |
23 | - const daysInCurrentMonth = new Date(today.getFullYear(), today.getMonth() + 1, 0).getDate(); | |
23 | + const daysInCurrentMonth = new Date(today.getFullYear(), today.getMonth(), 0).getDate(); | |
24 | 24 | expect(daysInCurrentMonth).to.equal(calendarCells.length); |
25 | 25 | done(); |
26 | 26 | }); |
... | ... | @@ -32,7 +32,7 @@ describe('DatePicker.vue', () => { |
32 | 32 | `); |
33 | 33 | const picker = vm.$children[0]; |
34 | 34 | expect(picker.$children.length).to.equal(2); |
35 | - expect(Array.isArray(picker.currentValue)).to.equal(true); | |
35 | + expect(Array.isArray(picker.internalValue)).to.equal(true); | |
36 | 36 | done(); |
37 | 37 | }); |
38 | 38 | |
... | ... | @@ -61,10 +61,17 @@ describe('DatePicker.vue', () => { |
61 | 61 | dayFive.setHours(0, 0, 0, 0); |
62 | 62 | |
63 | 63 | // check pickers internal value |
64 | - const [startInternalValue, endInternalValue] = picker.currentValue; // Date Objects | |
64 | + const [startInternalValue, endInternalValue] = picker.internalValue; // Date Objects | |
65 | 65 | expect(Math.abs(dayOne - startInternalValue)).to.equal(0); |
66 | 66 | expect(Math.abs(dayFive - endInternalValue)).to.equal(0); |
67 | 67 | |
68 | + /* | |
69 | + const [startInternalValue, endInternalValue] = picker.internalValue; // Date Objects | |
70 | + expect(dateToString(dayOne)).to.equal(dateToString(startInternalValue)); | |
71 | + expect(dateToString(dayFive)).to.equal(dateToString(endInternalValue)); | |
72 | + | |
73 | + */ | |
74 | + | |
68 | 75 | // check pickers display value |
69 | 76 | const [startDisplayValue, endDisplayValue] = displayField.value.split(' - ').map(stringToDate); // Date Objects |
70 | 77 | expect(Math.abs(dayOne - startDisplayValue)).to.equal(0); |
... | ... | @@ -77,6 +84,7 @@ describe('DatePicker.vue', () => { |
77 | 84 | }); |
78 | 85 | |
79 | 86 | it('should change type progamatically', done => { |
87 | + // https://jsfiddle.net/hq7cLz83/ | |
80 | 88 | vm = createVue({ |
81 | 89 | template: '<Date-picker :type="dateType"></Date-picker>', |
82 | 90 | data() { |
... | ... | @@ -94,9 +102,9 @@ describe('DatePicker.vue', () => { |
94 | 102 | const monthPanel = panel.querySelector('.ivu-date-picker-cells-month'); |
95 | 103 | const yearPanel = panel.querySelector('.ivu-date-picker-cells-year'); |
96 | 104 | |
97 | - expect(dayPanel.style.display).to.equal('none'); | |
105 | + expect(dayPanel).to.equal(null); | |
98 | 106 | expect(monthPanel.style.display).to.equal(''); |
99 | - expect(yearPanel.style.display).to.equal('none'); | |
107 | + expect(yearPanel).to.equal(null); | |
100 | 108 | |
101 | 109 | expect(picker.type).to.equal('month'); |
102 | 110 | expect(picker.selectionMode).to.equal('month'); |
... | ... | @@ -104,6 +112,11 @@ describe('DatePicker.vue', () => { |
104 | 112 | vm.dateType = 'year'; |
105 | 113 | promissedTick(picker) |
106 | 114 | .then(() => { |
115 | + const yearPanel = panel.querySelector('.ivu-date-picker-cells-year'); | |
116 | + const monthPanel = panel.querySelector('.ivu-date-picker-cells-month'); | |
117 | + expect(yearPanel.style.display).to.equal(''); | |
118 | + expect(monthPanel).to.equal(null); | |
119 | + | |
107 | 120 | expect(picker.type).to.equal('year'); |
108 | 121 | expect(picker.selectionMode).to.equal('year'); |
109 | 122 | |
... | ... | @@ -112,10 +125,10 @@ describe('DatePicker.vue', () => { |
112 | 125 | }) |
113 | 126 | .then(() => { |
114 | 127 | expect(picker.type).to.equal('date'); |
115 | - expect(picker.selectionMode).to.equal('day'); | |
128 | + expect(picker.selectionMode).to.equal('date'); | |
116 | 129 | |
117 | 130 | done(); |
118 | - }); | |
131 | + }).catch(err => console.log(err)); | |
119 | 132 | }); |
120 | 133 | }); |
121 | 134 | |
... | ... | @@ -170,7 +183,7 @@ describe('DatePicker.vue', () => { |
170 | 183 | clickableCells[firstDayInMonthIndex + 4].firstElementChild.click(); |
171 | 184 | vm.$nextTick(() => { |
172 | 185 | // cache first values |
173 | - const [startInternalValue, endInternalValue] = picker.currentValue; // Date Objects | |
186 | + const [startInternalValue, endInternalValue] = picker.internalValue; // Date Objects | |
174 | 187 | const [startDisplayValue, endDisplayValue] = displayField.value.split(' - ').map(stringToDate); // Date Objects |
175 | 188 | |
176 | 189 | // clear picker |
... | ... | @@ -183,7 +196,7 @@ describe('DatePicker.vue', () => { |
183 | 196 | |
184 | 197 | vm.$nextTick(() => { |
185 | 198 | expect(picker.visible).to.equal(true); |
186 | - expect(JSON.stringify(picker.currentValue)).to.equal('[null,null]'); | |
199 | + expect(JSON.stringify(picker.internalValue)).to.equal('[null,null]'); | |
187 | 200 | expect(displayField.value).to.equal(''); |
188 | 201 | |
189 | 202 | clickableCells[firstDayInMonthIndex].firstElementChild.click(); |
... | ... | @@ -191,8 +204,8 @@ describe('DatePicker.vue', () => { |
191 | 204 | clickableCells[firstDayInMonthIndex + 4].firstElementChild.click(); |
192 | 205 | vm.$nextTick(() => { |
193 | 206 | // recheck internal values |
194 | - expect(Math.abs(picker.currentValue[0] - startInternalValue)).to.equal(0); | |
195 | - expect(Math.abs(picker.currentValue[1] - endInternalValue)).to.equal(0); | |
207 | + expect(Math.abs(picker.internalValue[0] - startInternalValue)).to.equal(0); | |
208 | + expect(Math.abs(picker.internalValue[1] - endInternalValue)).to.equal(0); | |
196 | 209 | // recheck display value |
197 | 210 | const [_startDisplayValue, _endDisplayValue] = displayField.value.split(' - ').map(stringToDate); // Date Objects |
198 | 211 | expect(Math.abs(_startDisplayValue - startDisplayValue)).to.equal(0); |
... | ... |