diff --git a/src/components/DataDecorator/Decorator/Decorator.js b/src/components/DataDecorator/Decorator/Decorator.js index 4edac896c..46ef7b1b6 100644 --- a/src/components/DataDecorator/Decorator/Decorator.js +++ b/src/components/DataDecorator/Decorator/Decorator.js @@ -116,7 +116,11 @@ class Decorator extends Component { if (href) { return ( - + {decorator} ); @@ -134,7 +138,13 @@ class Decorator extends Component { ); } - return {decorator}; + return ( + + {decorator} + + ); } } diff --git a/src/components/DataDecorator/Decorator/__tests__/Decorator-test.js b/src/components/DataDecorator/Decorator/__tests__/Decorator-test.js index fb2fff9a3..4936f5184 100644 --- a/src/components/DataDecorator/Decorator/__tests__/Decorator-test.js +++ b/src/components/DataDecorator/Decorator/__tests__/Decorator-test.js @@ -3,8 +3,8 @@ * @copyright IBM Security 2019 - 2021 */ +import { fireEvent, render } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import { render } from '@testing-library/react'; import React from 'react'; @@ -142,6 +142,47 @@ describe('Decorator', () => { // the MD5 hash -- the data decorator. expect(queryAllByText(/0f3deda483df…243b/i).length === 1); }); + + test('should invoke context menu mock when a non-interactive ("span") decorator is right-clicked', () => { + const onContextMenuMock = jest.fn(); + const { getByText } = render( + + ); + + fireEvent.contextMenu(getByText(/10.0.0.0/i).closest('span')); + expect(onContextMenuMock).toHaveBeenCalledTimes(1); + }); + + test('should invoke context menu mock when an href ("a") decorator is right-clicked', () => { + const onContextMenuMock = jest.fn(); + const { getByText } = render( + + ); + + fireEvent.contextMenu(getByText(/10.0.0.0/i).closest('a')); + expect(onContextMenuMock).toHaveBeenCalledTimes(1); + }); + + test('should invoke context menu mock when an interactive ("button") decorator is right-clicked', () => { + const onClickMock = jest.fn(); + const onContextMenuMock = jest.fn(); + const { getByText } = render( + + ); + + fireEvent.contextMenu(getByText(/10.0.0.0/i).closest('button')); + expect(onContextMenuMock).toHaveBeenCalledTimes(1); + }); }); Object.keys(icons).forEach((icon) => {