/* eslint-disable function-paren-newline, comma-dangle */
import React from 'react'
import renderWithTheme from '../../testHelper'
import CheckboxGroup from '../CheckboxGroup'
describe('CheckboxGroup', () => {
it('renders a CheckboxGroup', () => {
const tree = renderWithTheme(
)
expect(tree).toMatchSnapshot()
})
describe('events', () => {
it('handles onChange', () => {
const wrapper = mount(
)
const checkbox = wrapper.find('input#test-checkboxgroup-One')
checkbox.simulate('change', { target: { checked: true, value: 'one' } })
expect(wrapper.state('values')).toEqual(['one'])
checkbox.simulate('change', { target: { checked: false, value: 'one' } })
expect(wrapper.state('values')).toEqual([])
})
it('Does not select same value twice', () => {
const wrapper = mount(
)
const checkbox = wrapper.find('input#test-checkboxgroup-One')
checkbox.simulate('change', { target: { checked: true, value: 'one' } })
expect(wrapper.state('values')).toEqual(['one'])
checkbox.simulate('change', { target: { checked: true, value: 'one' } })
expect(wrapper.state('values')).toEqual(['one'])
})
it('Does not select same value twice when aldreay populated with a duplicate', () => {
const wrapper = mount(
)
const checkbox = wrapper.find('input#test-checkboxgroup-One')
wrapper.setState({ values: ['one', 'one'] })
expect(wrapper.state('values')).toEqual(['one', 'one'])
checkbox.simulate('change', { target: { checked: true, value: 'two' } })
expect(wrapper.state('values')).toEqual(['one', 'two'])
})
})
})