ant-design-vue/components/radio/__tests__/radio.test.js

46 lines
1.2 KiB
JavaScript

import { mount } from '@vue/test-utils';
import { asyncExpect } from '@/tests/utils';
import Radio, { Group, Button } from '..';
import focusTest from '../../../tests/shared/focusTest';
import mountTest from '../../../tests/shared/mountTest';
describe('Radio', () => {
focusTest(Radio);
mountTest(Radio);
mountTest(Group);
mountTest(Button);
it('should render correctly', () => {
const wrapper = mount({
render() {
return <Radio class="customized">Test</Radio>;
},
});
expect(wrapper.html()).toMatchSnapshot();
});
it('responses hover events', async () => {
const onMouseEnter = jest.fn();
const onMouseLeave = jest.fn();
const wrapper = mount(
{
render() {
return <Radio onMouseenter={onMouseEnter} onMouseleave={onMouseLeave} />;
},
},
{ sync: false },
);
await asyncExpect(() => {
wrapper.find('label').trigger('mouseenter');
});
await asyncExpect(() => {
expect(onMouseEnter).toHaveBeenCalled();
});
wrapper.find('label').trigger('mouseleave');
await asyncExpect(() => {
expect(onMouseLeave).toHaveBeenCalled();
});
});
});