| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- /* eslint-disable max-len */
- import React from 'react';
- import { mount } from 'enzyme';
- import Radio from '../index';
- import RadioInner from '../radioInner';
- import { BASE_CLASS_PREFIX } from '../../../semi-foundation/base/constants';
- describe('radio', () => {
- it('radio should work basically', () => {
- const radio = mount(
- <Radio />
- );
- const radioDOM = radio.find('input');
- expect(radioDOM.exists()).toEqual(true);
- expect(Boolean(radioDOM.checked)).toEqual(false);
- expect(Boolean(radioDOM.disabled)).toEqual(false);
- });
- it('radio default checked', () => {
- const radio = mount(
- <Radio checked />
- );
- const radioDOM = radio.find('input').getDOMNode();
- expect(Boolean(radioDOM.checked)).toEqual(true);
- });
- it('radio default disabled', () => {
- const radio = mount(
- <Radio disabled />
- );
- const radioDOM = radio.find('input').getDOMNode();
- expect(Boolean(radioDOM.disabled)).toEqual(true);
- });
- it('radio onChange', () => {
- const onChange = sinon.spy(value => {});
- const onChange2 = sinon.spy(value => {});
- const radio = mount(<Radio onChange={onChange} />);
- const advancedRadio = mount(<Radio mode="advanced" onChange={onChange2} />);
- // 普通 Radio
- const elem = radio.find('input');
- elem.simulate('change', { target: { checked: true } });
- expect(onChange.calledOnce).toBe(true);
- expect(onChange.getCall(0).args[0].target.checked).toBe(true);
- // mode=advanced Radio
- const elem2 = advancedRadio.find('input');
- elem2.simulate('change', { target: { checked: true } });
- expect(onChange2.calledOnce).toBe(true);
- // 验证是否能正确获取参数
- expect(onChange2.getCall(0).args[0].target.checked).toBe(true);
- });
- it('radio advanced mode', () => {
- // Radio即使不是mode=advanced测试时也可以通过调用onChange修改选中状态
- // 而用户点击时,由于input的type为radio,用户点击这时不会触发onChange
- // 这个用例用于验证onChange是否能跑通
- const onChange = sinon.spy(value => {});
- const wrapper = mount(<Radio mode="advanced" onChange={onChange}>允许取消选择</Radio>);
- const radioInner = wrapper.find(RadioInner);
- wrapper
- .find('input')
- .first()
- .simulate('change', { target: { checked: true, stopPropagation: () => {}, preventDefault: () => {} } });
- expect(radioInner.state().checked).toBe(true);
- wrapper
- .find('input')
- .first()
- .simulate('change', { target: { checked: false, stopPropagation: () => {}, preventDefault: () => {} } });
- expect(radioInner.state().checked).toBe(false);
- });
- it('radio button style', () => {
- const radio = mount(
- <Radio type="button" />
- );
- expect(radio.exists(`.${BASE_CLASS_PREFIX}-radio-buttonRadioComponent`)).toEqual(true);
- });
- });
|