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