From 871e86ed755ccf8a9a983ee43e3ef681485a49a3 Mon Sep 17 00:00:00 2001 From: songjianet <1778651752@qq.com> Date: Sat, 16 Oct 2021 01:58:44 +0800 Subject: [PATCH] test(date-picker): update test (#1376) * test(date-picker): Update date-picker component test * test(date-picker): Update date-picker component test * test(date-picker): Update date-picker component test * test(date-picker): Update date-picker component test --- src/date-picker/tests/DatePicker.spec.ts | 91 ++++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/src/date-picker/tests/DatePicker.spec.ts b/src/date-picker/tests/DatePicker.spec.ts index 09f0f44be..ca90b17f6 100644 --- a/src/date-picker/tests/DatePicker.spec.ts +++ b/src/date-picker/tests/DatePicker.spec.ts @@ -2,11 +2,14 @@ import { ref } from 'vue' import { mount } from '@vue/test-utils' import { NDatePicker } from '../index' import { Value } from '../src/interface' +import { format } from 'date-fns' +import { useLocale } from '../../_mixins' describe('n-date-picker', () => { it('should work with import on demand', () => { mount(NDatePicker).unmount() }) + it('date type should work with shortcuts prop', async () => { const test = ref(0) const wrapper = mount(NDatePicker, { @@ -39,6 +42,7 @@ describe('n-date-picker', () => { expect(test.value).toEqual(1631203200000) wrapper.unmount() }) + it('range type should work with shortcuts prop', async () => { const test = ref(0) const wrapper = mount(NDatePicker, { @@ -124,4 +128,91 @@ describe('n-date-picker', () => { ) wrapper.unmount() }) + + it('should work with `defaultValue` prop', async () => { + const { dateLocaleRef } = useLocale('Time') + const wrapper = mount(NDatePicker, { + props: { + defaultValue: 1183135260000 + } + }) + + const inputEl = await wrapper.find('.n-input__input').find('input') + expect(inputEl.element.value).toEqual( + format(1183135260000, 'yyyy-MM-dd', { + locale: dateLocaleRef.value.locale + }) + ) + }) + + it('should work with `firstDayOfWeek` prop', async () => { + const wrapper = mount(NDatePicker, { + attachTo: document.body, + props: { + firstDayOfWeek: 1 + } + }) + + await wrapper.find('.n-input__input').trigger('click') + expect( + document.querySelectorAll('.n-date-panel-weekdays__day')[0].textContent + ).toBe('Tu') + + wrapper.unmount() + }) + + it('should work with `type` prop', async () => { + const wrapper = mount(NDatePicker, { + attachTo: document.body, + props: { type: 'date' } + }) + + await wrapper.find('.n-input__input').trigger('click') + expect(document.querySelector('.n-date-panel--date')).not.toEqual(null) + + await wrapper.setProps({ type: 'datetime' }) + await wrapper.find('.n-input__input').trigger('click') + expect(document.querySelector('.n-date-panel--datetime')).not.toEqual(null) + + await wrapper.setProps({ type: 'daterange' }) + await wrapper.find('.n-input__input').trigger('click') + expect(document.querySelector('.n-date-panel--daterange')).not.toEqual(null) + + await wrapper.setProps({ type: 'datetimerange' }) + await wrapper.find('.n-input__input').trigger('click') + expect(document.querySelector('.n-date-panel--datetimerange')).not.toEqual( + null + ) + + await wrapper.setProps({ type: 'month' }) + await wrapper.find('.n-input__input').trigger('click') + expect(document.querySelector('.n-date-panel--month')).not.toEqual(null) + + wrapper.unmount() + }) + + it('should work with `onBlur` prop', async () => { + const onBlur = jest.fn() + const wrapper = mount(NDatePicker, { + props: { onBlur } + }) + + await wrapper.find('input').trigger('focus') + await wrapper.find('input').trigger('blur') + expect(onBlur).toHaveBeenCalled() + + wrapper.unmount() + }) + + it('should work with `onFocus` prop', async () => { + const onFocus = jest.fn() + const wrapper = mount(NDatePicker, { + props: { onFocus } + }) + + await wrapper.find('input').trigger('focus') + expect(onFocus).toHaveBeenCalled() + + wrapper.unmount() + }) })