import React from 'react'; import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { DropdownToggleCheckbox } from '../DropdownToggleCheckbox'; const props = { onChange: jest.fn(), isChecked: false }; describe('DropdownToggleCheckbox', () => { test('controlled', () => { const { asFragment } = render(); expect(asFragment()).toMatchSnapshot(); }); test('uncontrolled', () => { const { asFragment } = render(); expect(asFragment()).toMatchSnapshot(); }); test('with text', () => { const { asFragment } = render( Some text ); expect(asFragment()).toMatchSnapshot(); }); test('isDisabled', () => { const { asFragment } = render(); expect(asFragment()).toMatchSnapshot(); }); test('3rd state', () => { const { asFragment } = render(); expect(asFragment()).toMatchSnapshot(); }); test('passing class', () => { const { asFragment } = render( ); expect(asFragment()).toMatchSnapshot(); }); test('passing HTML attribute', () => { const { asFragment } = render( ); expect(asFragment()).toMatchSnapshot(); }); test('checkbox passes value and event to onChange handler', async () => { const user = userEvent.setup(); render(); await user.click(screen.getByRole('checkbox')); expect(props.onChange).toHaveBeenCalledWith(expect.any(Object), true); }); });