mirror of
https://github.com/tenrok/vue2-datepicker.git
synced 2026-05-17 17:59:40 +03:00
50 lines
1.6 KiB
JavaScript
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', async () => {
|
|
wrapper = mount(DatetimePanel, {
|
|
propsData: {
|
|
type: 'datetime',
|
|
defaultValue: new Date(2019, 9, 1, 12),
|
|
},
|
|
});
|
|
const td = wrapper.find('.mx-table-date td:nth-child(4)');
|
|
await 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);
|
|
await timeTitle.trigger('click');
|
|
timeTitle = wrapper.find('.mx-time-header-title');
|
|
expect(timeTitle.exists()).toBe(false);
|
|
});
|
|
|
|
it('feat: disabled time', async () => {
|
|
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)');
|
|
await 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);
|
|
await wrapper.setProps({ defaultValue });
|
|
await td.trigger('click');
|
|
expect(wrapper.emitted().select[0][0]).toEqual(defaultValue);
|
|
});
|
|
});
|