import { fireEvent, render, screen } from '@testing-library/react'; import { Checkbox } from './checkbox'; describe('Checkbox', () => { it('should render checkbox with label successfully', () => { render(); expect(screen.getByText('test')).toBeInTheDocument(); }); it('should render a checked checkbox if specified in state', () => { render(); expect(screen.getByRole('img')).toBeInTheDocument(); }); it('should render an unchecked checkbox if specified in state', () => { render(); expect(screen.queryByRole('img')).not.toBeInTheDocument(); }); it('should render an indeterminate checkbox if specified in state', () => { render(); expect(screen.getByTestId('indeterminate-icon')).toBeInTheDocument(); }); it('fires callback on change if provided', () => { const callback = jest.fn(); render( ); const checkbox = screen.getByText('onchange'); fireEvent.click(checkbox); expect(callback).toHaveBeenCalled(); }); });