test: add checkbox & switch test

pull/22/head
tjz 7 years ago
parent 14e7805af1
commit 7df963aac7

@ -0,0 +1,26 @@
import { mount } from '@vue/test-utils'
import Checkbox from '..'
import focusTest from '../../../tests/shared/focusTest'
describe('Checkbox', () => {
focusTest(Checkbox)
it('responses hover events', () => {
const onMouseEnter = jest.fn()
const onMouseLeave = jest.fn()
const wrapper = mount(Checkbox, {
listeners: {
mouseenter: onMouseEnter,
mouseleave: onMouseLeave,
},
})
wrapper.trigger('mouseenter')
expect(onMouseEnter).toHaveBeenCalled()
wrapper.trigger('mouseleave')
expect(onMouseLeave).toHaveBeenCalled()
})
})

@ -0,0 +1,65 @@
import { mount } from '@vue/test-utils'
import Checkbox from '../index'
describe('CheckboxGroup', () => {
it('should work basically', () => {
const onChange = jest.fn()
const wrapper = mount(
{
render () {
return <Checkbox.Group options={['Apple', 'Pear', 'Orange']} onChange={onChange} />
},
}
)
wrapper.findAll('.ant-checkbox-input').at(0).trigger('change')
expect(onChange).toBeCalledWith(['Apple'])
wrapper.findAll('.ant-checkbox-input').at(1).trigger('change')
expect(onChange).toBeCalledWith(['Apple', 'Pear'])
wrapper.findAll('.ant-checkbox-input').at(2).trigger('change')
expect(onChange).toBeCalledWith(['Apple', 'Pear', 'Orange'])
wrapper.findAll('.ant-checkbox-input').at(1).trigger('change')
expect(onChange).toBeCalledWith(['Apple', 'Orange'])
})
it('does not trigger onChange callback of both Checkbox and CheckboxGroup when CheckboxGroup is disabled', () => {
const onChangeGroup = jest.fn()
const options = [
{ label: 'Apple', value: 'Apple' },
{ label: 'Pear', value: 'Pear' },
]
const groupWrapper = mount(
{
render () {
return <Checkbox.Group options={options} onChange={onChangeGroup} disabled />
},
}
)
groupWrapper.findAll('.ant-checkbox-input').at(0).trigger('change')
expect(onChangeGroup).not.toBeCalled()
groupWrapper.findAll('.ant-checkbox-input').at(1).trigger('change')
expect(onChangeGroup).not.toBeCalled()
})
it('does not prevent onChange callback from Checkbox when CheckboxGroup is not disabled', () => {
const onChangeGroup = jest.fn()
const options = [
{ label: 'Apple', value: 'Apple' },
{ label: 'Orange', value: 'Orange', disabled: true },
]
const groupWrapper = mount(
{
render () {
return <Checkbox.Group options={options} onChange={onChangeGroup} />
},
}
)
groupWrapper.findAll('.ant-checkbox-input').at(0).trigger('change')
expect(onChangeGroup).toBeCalledWith(['Apple'])
groupWrapper.findAll('.ant-checkbox-input').at(1).trigger('change')
expect(onChangeGroup).toBeCalledWith(['Apple'])
})
})

@ -0,0 +1,6 @@
import Switch from '..'
import focusTest from '../../../tests/shared/focusTest'
describe('Switch', () => {
focusTest(Switch)
})

@ -31,3 +31,17 @@ Vue.component('transition-group', {
},
})
Vue.prototype.$emit = function () {
const vm = this
const args = [].slice.call(arguments, 0)
const filterEvent = []
const eventName = args[0]
if (args.length && vm.$listeners[eventName]) {
if (filterEvent.includes(eventName)) {
vm.$emit(eventName, ...args.slice(1))
} else {
vm.$listeners[eventName](...args.slice(1))
}
}
}

Loading…
Cancel
Save