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