import * as React from 'react'; import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { ToggleGroup } from '../ToggleGroup'; import { ToggleGroupItem } from '../ToggleGroupItem'; const props = { onChange: jest.fn(), selected: false }; describe('ToggleGroup', () => { test('basic selected', () => { const { asFragment } = render( ); expect(asFragment()).toMatchSnapshot(); }); test('basic not selected', () => { const { asFragment } = render( ); expect(asFragment()).toMatchSnapshot(); }); test('icon variant', () => { const { asFragment } = render( ); expect(asFragment()).toMatchSnapshot(); }); test('isDisabled', () => { const { asFragment } = render( ); expect(asFragment()).toMatchSnapshot(); }); test('item passes selection and event to onChange handler', async () => { const user = userEvent.setup(); render( ); await user.click(screen.getByRole('button')); expect(props.onChange).toHaveBeenCalledWith(expect.any(Object), true); }); test('isCompact', () => { const { asFragment } = render( ); expect(asFragment()).toMatchSnapshot(); }); test('should render non-ToggleGroupItem children', () => { const { asFragment } = render( {false && } {'Test 3'} {undefined} {null} ); expect(asFragment()).toMatchSnapshot(); }); });