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) => {