2
0
mirror of https://github.com/tenrok/vue2-datepicker.git synced 2026-05-27 05:14:06 +03:00
Files
vue2-datepicker/__test__/datetime-panel.test.js
T
mengxiong10 309a1bff70 fix: defaultValue should be used in datetime mode (#384)
When switching date causes time is disabled, the time of `defaultValue` should be used by default.
2019-12-02 17:10:27 +08:00

50 lines
1.6 KiB
JavaScript

import { mount } from '@vue/test-utils';
import DatetimePanel from '../src/datetime/datetime-panel';
let wrapper;
afterEach(() => {
wrapper.destroy();
});
describe('DatetimePanel', () => {
it('feat: click date', () => {
wrapper = mount(DatetimePanel, {
propsData: {
type: 'datetime',
defaultValue: new Date(2019, 9, 1, 12),
},
});
const td = wrapper.find('.mx-table-date td:nth-child(4)');
td.trigger('click');
expect(wrapper.emitted().select[0][0]).toEqual(new Date(2019, 9, 2, 12));
let timeTitle = wrapper.find('.mx-time-header-title');
expect(timeTitle.exists()).toBe(true);
timeTitle.trigger('click');
timeTitle = wrapper.find('.mx-time-header-title');
expect(timeTitle.exists()).toBe(false);
});
it('feat: disabled time', () => {
const disabledDate = date => date < new Date(2019, 9, 2);
const disabledTime = date => date < new Date(2019, 9, 2, 12);
wrapper = mount(DatetimePanel, {
propsData: {
defaultValue: new Date(2019, 9, 2, 10),
disabledDate,
disabledTime,
},
});
const td = wrapper.find('.mx-table-date td:nth-child(4)');
td.trigger('click');
expect(wrapper.emitted().select).toBeUndefined();
const timeTitle = wrapper.find('.mx-time-header-title');
expect(timeTitle.text()).toBe('2019-10-02');
// set the defaultValue is not disabled
const defaultValue = new Date(2019, 9, 2, 12);
wrapper.setProps({ defaultValue });
td.trigger('click');
expect(wrapper.emitted().select[0][0]).toEqual(defaultValue);
});
});