2
0
mirror of https://github.com/tenrok/vue2-datepicker.git synced 2026-06-20 14:10:36 +03:00

chore: update test

This commit is contained in:
2023-10-06 10:12:44 +03:00
parent bb90ec8500
commit 765cb6868c
14 changed files with 17255 additions and 13703 deletions
+5 -5
View File
@@ -1,6 +1,6 @@
import { shallowMount, createWrapper, mount } from '@vue/test-utils'; import { shallowMount, createWrapper, mount } from '@vue/test-utils';
import { format, parse } from 'date-fns'; import { format, parse } from 'date-fns';
import Popup from '../src/popup'; import Popup from '../src/popup.vue';
import DatePicker from '../src/date-picker'; import DatePicker from '../src/date-picker';
let wrapper; let wrapper;
@@ -194,7 +194,7 @@ describe('DatePicker', () => {
it('prop: shortcut', async () => { it('prop: shortcut', async () => {
const date = new Date(2019, 4, 10); const date = new Date(2019, 4, 10);
wrapper = shallowMount(DatePicker, { wrapper = mount(DatePicker, {
propsData: { propsData: {
open: true, open: true,
valueType: 'YYYY/MM/DD', valueType: 'YYYY/MM/DD',
@@ -224,7 +224,7 @@ describe('DatePicker', () => {
}, },
], ],
}); });
btn.trigger('click'); await btn.trigger('click');
expect(emitted.input[1]).toEqual([['2019/05/10', '2019/05/10']]); expect(emitted.input[1]).toEqual([['2019/05/10', '2019/05/10']]);
}); });
@@ -352,7 +352,7 @@ describe('DatePicker', () => {
}, },
}); });
const els = wrapper.findAll('button'); const els = wrapper.findAll('button');
els.wrappers.forEach(v => { els.wrappers.forEach((v) => {
expect(v.element.type).toBe('button'); expect(v.element.type).toBe('button');
}); });
}); });
@@ -428,7 +428,7 @@ describe('DatePicker', () => {
wrapper = shallowMount(DatePicker, { wrapper = shallowMount(DatePicker, {
format: 'YYYY-MM-DD', format: 'YYYY-MM-DD',
propsData: { propsData: {
disabledDate: date => { disabledDate: (date) => {
return date < someday; return date < someday;
}, },
}, },
+17203 -13649
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -45,7 +45,7 @@
}, },
"homepage": "https://github.com/mengxiong10/vue2-datepicker#readme", "homepage": "https://github.com/mengxiong10/vue2-datepicker#readme",
"peerDependencies": { "peerDependencies": {
"vue": "^2.5.0" "vue": "^2.7.14"
}, },
"dependencies": { "dependencies": {
"date-format-parse": "^0.2.7" "date-format-parse": "^0.2.7"
@@ -95,7 +95,7 @@
"rollup-plugin-terser": "^5.1.2", "rollup-plugin-terser": "^5.1.2",
"rollup-plugin-vue": "^5.1.6", "rollup-plugin-vue": "^5.1.6",
"sass": "^1.22.10", "sass": "^1.22.10",
"vue": "^2.6.10", "vue": "^2.7.14",
"vue-hot-reload-api": "^2.3.3", "vue-hot-reload-api": "^2.3.3",
"vue-jest": "^3.0.5", "vue-jest": "^3.0.5",
"vue-template-compiler": "^2.6.10" "vue-template-compiler": "^2.6.10"
+6 -6
View File
@@ -7,9 +7,9 @@ import {
startOfMonth, startOfMonth,
startOfDay, startOfDay,
} from '../util/date'; } from '../util/date';
import TableDate from './table-date'; import TableDate from './table-date.vue';
import TableMonth from './table-month'; import TableMonth from './table-month.vue';
import TableYear from './table-year'; import TableYear from './table-year.vue';
export default { export default {
name: 'CalendarPanel', name: 'CalendarPanel',
@@ -85,7 +85,7 @@ export default {
date: startOfDay, date: startOfDay,
}; };
const start = map[this.type] || map.date; const start = map[this.type] || map.date;
return value.filter(isValidDate).map(v => start(v)); return value.filter(isValidDate).map((v) => start(v));
}, },
calendarYear() { calendarYear() {
return this.innerCalendar.getFullYear(); return this.innerCalendar.getFullYear();
@@ -224,7 +224,7 @@ export default {
if (this.isDisabled(cellDate)) { if (this.isDisabled(cellDate)) {
return 'disabled'; return 'disabled';
} }
if (this.innerValue.some(v => v.getTime() === cellDate.getTime())) { if (this.innerValue.some((v) => v.getTime() === cellDate.getTime())) {
return 'active'; return 'active';
} }
return ''; return '';
@@ -233,7 +233,7 @@ export default {
if (this.type !== 'week') return ''; if (this.type !== 'week') return '';
const start = row[0].getTime(); const start = row[0].getTime();
const end = row[6].getTime(); const end = row[6].getTime();
const active = this.innerValue.some(v => { const active = this.innerValue.some((v) => {
const time = v.getTime(); const time = v.getTime();
return time >= start && time <= end; return time >= start && time <= end;
}); });
+7 -9
View File
@@ -26,9 +26,7 @@
v-for="item in yearMonth" v-for="item in yearMonth"
:key="item.panel" :key="item.panel"
type="button" type="button"
:class=" :class="`${prefixClass}-btn ${prefixClass}-btn-text ${prefixClass}-btn-current-${item.panel}`"
`${prefixClass}-btn ${prefixClass}-btn-text ${prefixClass}-btn-current-${item.panel}`
"
@click="handlePanelChange(item.panel)" @click="handlePanelChange(item.panel)"
> >
{{ item.label }} {{ item.label }}
@@ -77,7 +75,7 @@
<script> <script>
import { getWeek, format } from 'date-format-parse'; import { getWeek, format } from 'date-format-parse';
import IconButton from './icon-button'; import IconButton from './icon-button.vue';
import { chunk } from '../util/base'; import { chunk } from '../util/base';
import { getCalendar, setMonth, setYear } from '../util/date'; import { getCalendar, setMonth, setYear } from '../util/date';
import { getLocale } from '../locale'; import { getLocale } from '../locale';
@@ -186,28 +184,28 @@ export default {
handleIconLeftClick() { handleIconLeftClick() {
this.$emit( this.$emit(
'changecalendar', 'changecalendar',
setMonth(this.calendar, v => v - 1), setMonth(this.calendar, (v) => v - 1),
'last-month' 'last-month'
); );
}, },
handleIconRightClick() { handleIconRightClick() {
this.$emit( this.$emit(
'changecalendar', 'changecalendar',
setMonth(this.calendar, v => v + 1), setMonth(this.calendar, (v) => v + 1),
'next-month' 'next-month'
); );
}, },
handleIconDoubleLeftClick() { handleIconDoubleLeftClick() {
this.$emit( this.$emit(
'changecalendar', 'changecalendar',
setYear(this.calendar, v => v - 1), setYear(this.calendar, (v) => v - 1),
'last-year' 'last-year'
); );
}, },
handleIconDoubleRightClick() { handleIconDoubleRightClick() {
this.$emit( this.$emit(
'changecalendar', 'changecalendar',
setYear(this.calendar, v => v + 1), setYear(this.calendar, (v) => v + 1),
'next-year' 'next-year'
); );
}, },
@@ -231,7 +229,7 @@ export default {
} }
const index = target.getAttribute('data-row-col'); const index = target.getAttribute('data-row-col');
if (index) { if (index) {
const [row, col] = index.split(',').map(v => parseInt(v, 10)); const [row, col] = index.split(',').map((v) => parseInt(v, 10));
const date = this.dates[row][col]; const date = this.dates[row][col];
this.$emit('select', new Date(date)); this.$emit('select', new Date(date));
} }
+3 -3
View File
@@ -41,7 +41,7 @@
<script> <script>
import { chunk } from '../util/base'; import { chunk } from '../util/base';
import IconButton from './icon-button'; import IconButton from './icon-button.vue';
import { getLocale } from '../locale'; import { getLocale } from '../locale';
import { setYear } from '../util/date'; import { setYear } from '../util/date';
@@ -102,14 +102,14 @@ export default {
handleIconDoubleLeftClick() { handleIconDoubleLeftClick() {
this.$emit( this.$emit(
'changecalendar', 'changecalendar',
setYear(this.calendar, v => v - 1), setYear(this.calendar, (v) => v - 1),
'last-year' 'last-year'
); );
}, },
handleIconDoubleRightClick() { handleIconDoubleRightClick() {
this.$emit( this.$emit(
'changecalendar', 'changecalendar',
setYear(this.calendar, v => v + 1), setYear(this.calendar, (v) => v + 1),
'next-year' 'next-year'
); );
}, },
+4 -4
View File
@@ -36,7 +36,7 @@
</template> </template>
<script> <script>
import IconButton from './icon-button'; import IconButton from './icon-button.vue';
import { chunk } from '../util/base'; import { chunk } from '../util/base';
import { setYear } from '../util/date'; import { setYear } from '../util/date';
@@ -77,7 +77,7 @@ export default {
return this.years[0][0]; return this.years[0][0];
}, },
lastYear() { lastYear() {
const last = arr => arr[arr.length - 1]; const last = (arr) => arr[arr.length - 1];
return last(last(this.years)); return last(last(this.years));
}, },
}, },
@@ -108,14 +108,14 @@ export default {
handleIconDoubleLeftClick() { handleIconDoubleLeftClick() {
this.$emit( this.$emit(
'changecalendar', 'changecalendar',
setYear(this.calendar, v => v - 10), setYear(this.calendar, (v) => v - 10),
'last-decade' 'last-decade'
); );
}, },
handleIconDoubleRightClick() { handleIconDoubleRightClick() {
this.$emit( this.$emit(
'changecalendar', 'changecalendar',
setYear(this.calendar, v => v + 10), setYear(this.calendar, (v) => v + 10),
'next-decade' 'next-decade'
); );
}, },
+11 -11
View File
@@ -2,13 +2,13 @@ import { parse, format, getWeek } from 'date-format-parse';
import { isValidDate, isValidRangeDate, isValidDates } from './util/date'; import { isValidDate, isValidRangeDate, isValidDates } from './util/date';
import { pick, isObject, mergeDeep } from './util/base'; import { pick, isObject, mergeDeep } from './util/base';
import { getLocale } from './locale'; import { getLocale } from './locale';
import Popup from './popup'; import Popup from './popup.vue';
import IconCalendar from './icon/icon-calendar'; import IconCalendar from './icon/icon-calendar.vue';
import IconTime from './icon/icon-time'; import IconTime from './icon/icon-time.vue';
import IconClose from './icon/icon-close'; import IconClose from './icon/icon-close.vue';
import CalendarPanel from './calendar/calendar-panel'; import CalendarPanel from './calendar/calendar-panel';
import CalendarRange from './calendar/calendar-range'; import CalendarRange from './calendar/calendar-range';
import TimePanel from './time/time-panel'; import TimePanel from './time/time-panel.vue';
import TimeRange from './time/time-range'; import TimeRange from './time/time-range';
import DatetimePanel from './datetime/datetime-panel'; import DatetimePanel from './datetime/datetime-panel';
import DatetimeRange from './datetime/datetime-range'; import DatetimeRange from './datetime/datetime-range';
@@ -125,7 +125,7 @@ export default {
return ( return (
Array.isArray(value) && Array.isArray(value) &&
value.every( value.every(
v => isObject(v) && typeof v.text === 'string' && typeof v.onClick === 'function' (v) => isObject(v) && typeof v.text === 'string' && typeof v.onClick === 'function'
) )
); );
}, },
@@ -184,7 +184,7 @@ export default {
return ''; return '';
} }
if (Array.isArray(this.innerValue)) { if (Array.isArray(this.innerValue)) {
return this.innerValue.map(v => this.formatDate(v)).join(this.innerRangeSeparator); return this.innerValue.map((v) => this.formatDate(v)).join(this.innerRangeSeparator);
} }
return this.formatDate(this.innerValue); return this.formatDate(this.innerValue);
}, },
@@ -322,11 +322,11 @@ export default {
if (!Array.isArray(value)) { if (!Array.isArray(value)) {
value = [value]; value = [value];
} }
return value.every(v => !disabledDate(v) && !disabledTime(v)); return value.every((v) => !disabledDate(v) && !disabledTime(v));
}, },
handleMultipleDates(date, dates) { handleMultipleDates(date, dates) {
if (this.validMultipleType && dates) { if (this.validMultipleType && dates) {
const nextDates = dates.filter(v => v.getTime() !== date.getTime()); const nextDates = dates.filter((v) => v.getTime() !== date.getTime());
if (nextDates.length === dates.length) { if (nextDates.length === dates.length) {
nextDates.push(date); nextDates.push(date);
} }
@@ -402,7 +402,7 @@ export default {
} }
let date; let date;
if (this.validMultipleType) { if (this.validMultipleType) {
date = text.split(this.innerRangeSeparator).map(v => this.parseDate(v.trim())); date = text.split(this.innerRangeSeparator).map((v) => this.parseDate(v.trim()));
} else if (this.range) { } else if (this.range) {
let arr = text.split(this.innerRangeSeparator); let arr = text.split(this.innerRangeSeparator);
if (arr.length !== 2) { if (arr.length !== 2) {
@@ -410,7 +410,7 @@ export default {
// eg: 2019-10-09-2020-01-02 // eg: 2019-10-09-2020-01-02
arr = text.split(this.innerRangeSeparator.trim()); arr = text.split(this.innerRangeSeparator.trim());
} }
date = arr.map(v => this.parseDate(v.trim())); date = arr.map((v) => this.parseDate(v.trim()));
} else { } else {
date = this.parseDate(text); date = this.parseDate(text);
} }
+1 -1
View File
@@ -1,5 +1,5 @@
import CalendarPanel from '../calendar/calendar-panel'; import CalendarPanel from '../calendar/calendar-panel';
import TimePanel from '../time/time-panel'; import TimePanel from '../time/time-panel.vue';
import { assignTime, getValidDate } from '../util/date'; import { assignTime, getValidDate } from '../util/date';
import { pick } from '../util/base'; import { pick } from '../util/base';
+1 -1
View File
@@ -2,7 +2,7 @@
import DatePicker from './date-picker'; import DatePicker from './date-picker';
import CalendarPanel from './calendar/calendar-panel'; import CalendarPanel from './calendar/calendar-panel';
import CalendarRange from './calendar/calendar-range'; import CalendarRange from './calendar/calendar-range';
import TimePanel from './time/time-panel'; import TimePanel from './time/time-panel.vue';
import TimeRange from './time/time-range'; import TimeRange from './time/time-range';
import DatetimePanel from './datetime/datetime-panel'; import DatetimePanel from './datetime/datetime-panel';
import DatetimeRange from './datetime/datetime-range'; import DatetimeRange from './datetime/datetime-range';
+7 -7
View File
@@ -21,17 +21,17 @@
</template> </template>
<script> <script>
import ScrollbarVertical from '../scrollbar/scrollbar-vertical'; import ScrollbarVertical from '../scrollbar/scrollbar-vertical.vue';
import { getScrollParent } from '../util/dom'; import { getScrollParent } from '../util/dom';
const padNumber = value => { const padNumber = (value) => {
value = parseInt(value, 10); value = parseInt(value, 10);
return value < 10 ? `0${value}` : `${value}`; return value < 10 ? `0${value}` : `${value}`;
}; };
const generateOptions = (length, step, options) => { const generateOptions = (length, step, options) => {
if (Array.isArray(options)) { if (Array.isArray(options)) {
return options.filter(v => v >= 0 && v < length); return options.filter((v) => v >= 0 && v < length);
} }
if (step <= 0) { if (step <= 0) {
step = 1; step = 1;
@@ -122,7 +122,7 @@ export default {
if (this.showSecond) cols.push({ type: 'second', list: this.getSecondsList() }); if (this.showSecond) cols.push({ type: 'second', list: this.getSecondsList() });
if (this.use12h) cols.push({ type: 'ampm', list: this.getAMPMList() }); if (this.use12h) cols.push({ type: 'ampm', list: this.getAMPMList() });
return cols.filter(v => v.list.length > 0); return cols.filter((v) => v.list.length > 0);
}, },
}, },
watch: { watch: {
@@ -139,7 +139,7 @@ export default {
}, },
methods: { methods: {
getHoursList() { getHoursList() {
return generateOptions(this.use12h ? 12 : 24, this.hourStep, this.hourOptions).map(num => { return generateOptions(this.use12h ? 12 : 24, this.hourStep, this.hourOptions).map((num) => {
const date = new Date(this.date); const date = new Date(this.date);
let text = padNumber(num); let text = padNumber(num);
if (this.use12h) { if (this.use12h) {
@@ -155,13 +155,13 @@ export default {
}); });
}, },
getMinutesList() { getMinutesList() {
return generateOptions(60, this.minuteStep, this.minuteOptions).map(num => { return generateOptions(60, this.minuteStep, this.minuteOptions).map((num) => {
const value = new Date(this.date).setMinutes(num); const value = new Date(this.date).setMinutes(num);
return { value, text: padNumber(num) }; return { value, text: padNumber(num) };
}); });
}, },
getSecondsList() { getSecondsList() {
return generateOptions(60, this.secondStep, this.secondOptions).map(num => { return generateOptions(60, this.secondStep, this.secondOptions).map((num) => {
const value = new Date(this.date).setSeconds(num); const value = new Date(this.date).setSeconds(num);
return { value, text: padNumber(num) }; return { value, text: padNumber(num) };
}); });
+1 -1
View File
@@ -13,7 +13,7 @@
<script> <script>
import { format } from 'date-format-parse'; import { format } from 'date-format-parse';
import ScrollbarVertical from '../scrollbar/scrollbar-vertical'; import ScrollbarVertical from '../scrollbar/scrollbar-vertical.vue';
import { getScrollParent } from '../util/dom'; import { getScrollParent } from '../util/dom';
import { getLocale } from '../locale'; import { getLocale } from '../locale';
+3 -3
View File
@@ -39,8 +39,8 @@
<script> <script>
import { format } from 'date-format-parse'; import { format } from 'date-format-parse';
import { getValidDate } from '../util/date'; import { getValidDate } from '../util/date';
import ListColumns from './list-columns'; import ListColumns from './list-columns.vue';
import ListOptions from './list-options'; import ListOptions from './list-options.vue';
import { getLocale } from '../locale'; import { getLocale } from '../locale';
export default { export default {
@@ -143,7 +143,7 @@ export default {
use12h: /a/i.test(fmt), use12h: /a/i.test(fmt),
}; };
const obj = {}; const obj = {};
Object.keys(defaultProps).forEach(key => { Object.keys(defaultProps).forEach((key) => {
obj[key] = typeof this[key] === 'boolean' ? this[key] : defaultProps[key]; obj[key] = typeof this[key] === 'boolean' ? this[key] : defaultProps[key];
}); });
return obj; return obj;
+1 -1
View File
@@ -1,4 +1,4 @@
import TimePanel from './time-panel'; import TimePanel from './time-panel.vue';
import { isValidRangeDate } from '../util/date'; import { isValidRangeDate } from '../util/date';
export default { export default {