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);
});
});