diff --git a/packages/react-core/src/components/MenuToggle/MenuToggle.tsx b/packages/react-core/src/components/MenuToggle/MenuToggle.tsx index 6b53cb5f27a..b97844a53c9 100644 --- a/packages/react-core/src/components/MenuToggle/MenuToggle.tsx +++ b/packages/react-core/src/components/MenuToggle/MenuToggle.tsx @@ -149,6 +149,7 @@ export class MenuToggleBase extends React.Component { aria-expanded={isExpanded} aria-label={ariaLabel} disabled={isDisabled} + onClick={onClick} {...otherProps} > {toggleControls} diff --git a/packages/react-core/src/components/MenuToggle/__tests__/MenuToggle.test.tsx b/packages/react-core/src/components/MenuToggle/__tests__/MenuToggle.test.tsx index 75e9b4af1a1..55b75090b57 100644 --- a/packages/react-core/src/components/MenuToggle/__tests__/MenuToggle.test.tsx +++ b/packages/react-core/src/components/MenuToggle/__tests__/MenuToggle.test.tsx @@ -1,9 +1,11 @@ import React from 'react'; -import { render } from '@testing-library/react'; import { MenuToggle } from '../MenuToggle'; +import { MenuToggleCheckbox } from '../MenuToggleCheckbox'; import { Badge } from '../../Badge'; import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon'; import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon'; +import userEvent from '@testing-library/user-event'; +import { fireEvent, render, screen } from '@testing-library/react'; describe('menu toggle', () => { test('renders successfully', () => { @@ -54,4 +56,28 @@ describe('menu toggle', () => { const { asFragment } = render(badge}>Toggle); expect(asFragment()).toMatchSnapshot(); }); + + test('split toggle passes onClick', async () => { + const mockClick = jest.fn(); + const user = userEvent.setup(); + + render( + 10 selected + + ] + }} + aria-label="Menu toggle with checkbox split button and text" + />); + + await user.click(screen.getByRole(`button`) as Element); + expect(mockClick).toHaveBeenCalled(); + }); });