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
This commit is contained in:
songjianet 2021-10-16 01:58:44 +08:00 committed by GitHub
parent ad996a6e81
commit 871e86ed75
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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<Value>(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<Value>(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()
})
})