import React from 'react'; import { fireEvent, render } from '@testing-library/react-native'; import { NativeBaseProvider } from '../../../../core/NativeBaseProvider'; import { Checkbox } from '..'; import { Text } from '../..'; function CheckBoxGroup() { const [groupValue, setGroupValue] = React.useState(['Item 1 ', 'Item 3 ']); return ( { setGroupValue(values || []); }} > Item 1 Item 2 Item 3 Indeterminate Item ); } function CheckBox(group: any) { const [groupValues, setGroupValues] = React.useState>([]); return group ? ( One setGroupValues([...groupValues, 'two'])} > Two ) : ( <> { setGroupValues([...groupValues, 'one']); }} > One setGroupValues([...groupValues, 'two'])} > Two ); } describe('CheckBoxGroup', () => { it('handles defaults and onChange on checkBoxGroup', () => { let { getAllByRole } = render( ); let checkbox = getAllByRole('checkbox'); expect(checkbox.length).toBe(4); expect(checkbox[0].props.accessibilityState.checked).toBe(true); expect(checkbox[1].props.accessibilityState.checked).toBe(false); expect(checkbox[2].props.accessibilityState.checked).toBe(true); expect(checkbox[3].props.accessibilityState.checked).toBe(false); fireEvent.press(checkbox[1]); expect(checkbox[1].props.accessibilityState.checked).toBe(true); }); it('can be disabled on checkBox', () => { let { getAllByRole } = render( Item 1 Item 2 Item 3 Indeterminate Item ); let checkbox = getAllByRole('checkbox'); expect(checkbox.length).toBe(4); expect(checkbox[1].props.accessibilityState.disabled).toBe(true); }); it('is checked on checkBox', () => { let { getAllByRole } = render( Item 1 Item 2 Item 3 Indeterminate Item ); let checkbox = getAllByRole('checkbox'); expect(checkbox.length).toBe(4); expect(checkbox[0].props.accessibilityState.checked).toBe(true); }); it('inDeterminant on checkBoxGroup', () => { let { getAllByRole } = render( ); let checkbox = getAllByRole('checkbox'); expect(checkbox.length).toBe(2); expect(checkbox[1].props.accessibilityState.checked).toBe('mixed'); }); it('inDeterminant on checkBox', () => { let { getAllByRole } = render( ); let checkbox = getAllByRole('checkbox'); expect(checkbox.length).toBe(2); fireEvent.press(checkbox[1]); expect(checkbox[1].props.accessibilityState.checked).toBe('mixed'); }); it('onChange on checkBox', () => { let { getAllByRole } = render( ); let checkbox = getAllByRole('checkbox'); expect(checkbox.length).toBe(2); fireEvent.press(checkbox[0]); expect(checkbox[0].props.accessibilityState.checked).toBe(true); }); });