// @ts-ignore
import { configure, shallow } from 'enzyme';
// @ts-ignore
import Adapter from 'enzyme-adapter-react-16';
import * as React from 'react';
import { Text } from 'react-native';
import renderer from 'react-test-renderer';
import MDCellItem from '../../cell-item/index';
import MDRadioList from '../index';
configure({ adapter: new Adapter() });
const blanks = [
{
value: '0',
label: '交通银行(尾号3089)',
brief: '选项摘要描述',
},
{
value: '1',
label: '招商银行(尾号2342)',
brief: '选项摘要描述',
checked: true,
},
{
value: '2',
label: '建设银行(尾号4321)',
brief: '选项摘要描述',
disabled: true,
},
];
it('renders correctly with defaults', () => {
const component = renderer.create().toJSON();
expect(component).toMatchSnapshot();
});
it('renders correctly with input', () => {
const component = renderer
.create(
{
console.log(value, index);
}}
/>
)
.toJSON();
expect(component).toMatchSnapshot();
});
it('renders correctly with empty options', () => {
// @ts-ignore mock jsx
const component = renderer.create().toJSON();
expect(component).toMatchSnapshot();
});
it('renders correctly with wrong props', () => {
const component = renderer
// @ts-ignore mock jsx
.create()
.toJSON();
expect(component).toMatchSnapshot();
});
it('renders correctly with empty inputLabel', () => {
const component = renderer
// @ts-ignore mock jsx
.create()
.toJSON();
expect(component).toMatchSnapshot();
});
it('renders correctly with alignCenter', () => {
const component = renderer
.create()
.toJSON();
expect(component).toMatchSnapshot();
});
it('renders correctly with optionRender', () => {
const component = renderer
.create(
{
return {option.label};
}}
/>
)
.toJSON();
expect(component).toMatchSnapshot();
});
it('renders correctly with custom icon', () => {
const component = renderer
.create(
)
.toJSON();
expect(component).toMatchSnapshot();
});
it('renders correctly with custom icon 2', () => {
const component = renderer
.create(
)
.toJSON();
expect(component).toMatchSnapshot();
});
it('renders correctly with empty icon', () => {
const component = renderer
.create(
)
.toJSON();
expect(component).toMatchSnapshot();
});
it('test instance state with change defaultValue', () => {
const component = shallow();
expect(component.state('value')).toBe('');
component.setProps({ defaultValue: '0' });
expect(component.state('value')).toBe('0');
component.setProps({ defaultValue: '1' });
expect(component.state('value')).toBe('1');
});
it('test press event', () => {
const mockCallBack = jest.fn();
const component = shallow(
);
expect(component.find('MDCellItem')).toHaveLength(4);
component
.findWhere((n: any) => {
return n.type() === MDCellItem && n.props().title === '交通银行(尾号3089)';
})
.simulate('press');
expect(mockCallBack.mock.calls.length).toEqual(1);
expect(mockCallBack.mock.calls[0][0]).toEqual('0');
expect(mockCallBack.mock.calls[0][1]).toEqual(0);
component
.findWhere((n: any) => {
return n.type() === MDCellItem && n.props().title === '招商银行(尾号2342)';
})
.simulate('press');
expect(mockCallBack.mock.calls.length).toEqual(2);
expect(mockCallBack.mock.calls[1][0]).toEqual('1');
expect(mockCallBack.mock.calls[1][1]).toEqual(1);
});
it('test focus and change text event', () => {
const mockCallBack = jest.fn();
const component = shallow(
);
expect(component.find('MDInputItem')).toHaveLength(1);
component.find('MDInputItem').simulate('focus');
expect(mockCallBack.mock.calls.length).toEqual(1);
expect(mockCallBack.mock.calls[0][0]).toEqual('');
expect(mockCallBack.mock.calls[0][1]).toEqual(3);
component.find('MDInputItem').simulate('changeText', '浙商银行');
expect(mockCallBack.mock.calls.length).toEqual(2);
expect(mockCallBack.mock.calls[1][0]).toEqual('浙商银行');
expect(mockCallBack.mock.calls[1][1]).toEqual(3);
});
it('test public method', () => {
const component = shallow(
);
const instance: any = component.instance();
expect(component.state('value')).toEqual('1');
instance.select('0');
expect(component.state('value')).toEqual('0');
instance.selectByIndex(1);
expect(component.state('value')).toEqual('1');
instance.selectByIndex(4);
expect(component.state('value')).toEqual('1');
component.setProps({ options: null });
instance.selectByIndex(1);
expect(component.state('value')).toEqual('1');
});