import { render, fireEvent, screen } from '../test-utils';
import CheckboxButton from '.';
describe('Checkbox button', () => {
describe('by default', () => {
render();
const checkbox = screen.getByRole('checkbox');
it('is not checked', () => expect(checkbox).not.toBeChecked());
it('is not disabled', () => expect(checkbox).toBeEnabled());
});
it('applies aria-label if provided', () => {
render();
expect(screen.getByRole('checkbox', { name: 'An aria label' })).toBeInTheDocument();
});
it('is checked when checked prop is true', () => {
render();
expect(screen.getByRole('checkbox')).toBeChecked();
});
it('is disabled when disabled prop is true', () => {
render();
const checkbox = screen.getByRole('checkbox');
expect(checkbox).toBeDisabled();
});
it('calls onChange handler on change', () => {
const onChange = jest.fn();
render();
const checkbox = screen.getByRole('checkbox');
expect(onChange).not.toHaveBeenCalled();
fireEvent.click(checkbox);
expect(onChange).toHaveBeenCalledTimes(1);
});
});