46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			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();
 | 
						|
    });
 | 
						|
  });
 | 
						|
});
 |