text: import React from 'react';
  import RadioGroup from '../../src/react/RadioGroup.js';
  
  import renderer from 'react-test-renderer';
  import {mount} from 'enzyme';
  
  class RadioGroupForm extends React.Component {
  	constructor(props) {
  		super(props);
  		this.state = {value: undefined};
  		this.handleChange = this.handleChange.bind(this);
  	}
  
  	handleChange(val) {
  		this.setState({value: val});
  	}
  
  	getValue() {
  		return this.grp.getValue();
  	}
  
  	render() {
  		return (
  			<form >
  				<RadioGroup name='grp1' title='Group A' value={this.state.value} ref={(grp) => { this.grp = grp;}} onChange={this.handleChange} data-test-id='grp1'
  					options={[{value: '1', label: 'option 1'}, {value: '2', label: 'option 2'}]} />
  			</form>
  		);
  	}
  }
  
  describe('RadioGroup', () => {
  	test('RadioGroup - basic rendering', () => {
  		const radio = renderer.create(<RadioGroup name='grp1' defaultValue='2' value='1' title='Group A'
  			onChange={()=>{}} data-test-id='grp1'
  			options={[{value: '1', label: 'option 1'}, {value: '2', label: 'option 2'}]} />).toJSON();
  		expect(radio).toMatchSnapshot();
  	});
  
  	test('RadioGroup - value overrides default value', () => {
  		const radio = mount(<RadioGroup name='grp1' defaultValue='2' value='1' title='Group A'
  			onChange={()=>{}} data-test-id='grp1'
  			options={[{value: '1', label: 'option 1'}, {value: '2', label: 'option 2'}]} />);
  		expect(radio.instance().getValue()).toEqual('1');
  	});
  
  	test('RadioGroup - can have no value', () => {
  		const radio = mount(<RadioGroup name='grp1' title='Group A'
  			onChange={()=>{}} data-test-id='grp1'
  			options={[{value: '1', label: 'option 1'}, {value: '2', label: 'option 2'}]} />);
  		expect(radio.instance().getValue()).toEqual(undefined);
  	});
  
  	test('RadioGroup - can be rendered without title', () => {
  		const radio = mount(<RadioGroup name='grp1'
  			onChange={()=>{}} data-test-id='grp1'
  			options={[{value: '1', label: 'option 1'}, {value: '2', label: 'option 2'}]} />);
  		expect(radio.find('.sdc-radio-group__legend').length).toEqual(0);
  	});
  
  	test('RadioGroup - value changes', () => {
  		const radio = mount(<RadioGroupForm  />);
  		expect(radio.instance().getValue()).toEqual(undefined);
  		radio.find('input[value="1"]').simulate('change', { target : { checked: true }});
  		expect(radio.instance().getValue()).toEqual('1');
  		radio.find('input[value="2"]').simulate('change', { target : { checked: true }});
  		expect(radio.instance().getValue()).toEqual('2');
  	});
  });
  