diff --git a/plugins/catalog-react/src/alpha/blueprints/EntityContextMenuItemBlueprint.test.tsx b/plugins/catalog-react/src/alpha/blueprints/EntityContextMenuItemBlueprint.test.tsx
index 3bdfc00db7..b6e0f6d8ef 100644
--- a/plugins/catalog-react/src/alpha/blueprints/EntityContextMenuItemBlueprint.test.tsx
+++ b/plugins/catalog-react/src/alpha/blueprints/EntityContextMenuItemBlueprint.test.tsx
@@ -13,7 +13,20 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+import {
+ createExtensionTester,
+ renderInTestApp,
+ TestApiProvider,
+} from '@backstage/frontend-test-utils';
import { EntityContextMenuItemBlueprint } from './EntityContextMenuItemBlueprint';
+import { screen, waitFor } from '@testing-library/react';
+import { EntityProvider } from '@backstage/plugin-catalog-react';
+
+jest.mock('../../hooks/useEntityContextMenu', () => ({
+ useEntityContextMenu: () => ({
+ onMenuClose: jest.fn(),
+ }),
+}));
describe('EntityContextMenuItemBlueprint', () => {
const data = [
@@ -64,4 +77,63 @@ describe('EntityContextMenuItemBlueprint', () => {
}
`);
});
+
+ it('should filter items based on the filter function', async () => {
+ const extension = EntityContextMenuItemBlueprint.make({
+ name: 'test',
+ params: {
+ icon: Icon,
+ filter: e => e.kind.toLowerCase() === 'component',
+ useProps: () => ({
+ title: 'Test',
+ onClick: () => {},
+ }),
+ },
+ });
+
+ renderInTestApp(
+
+ {createExtensionTester(extension).reactElement()}
+ ,
+ );
+
+ await waitFor(() => {
+ expect(screen.queryByText('Test')).not.toBeInTheDocument();
+ });
+ });
+
+ it('should render a menu item', async () => {
+ const extension = EntityContextMenuItemBlueprint.make({
+ name: 'test',
+ params: {
+ icon: Icon,
+ useProps: () => ({
+ title: 'Test',
+ onClick: () => {},
+ }),
+ },
+ });
+
+ renderInTestApp(
+
+ {createExtensionTester(extension).reactElement()}
+ ,
+ );
+
+ await waitFor(() => {
+ expect(screen.getByText('Test')).toBeInTheDocument();
+ });
+ });
});
diff --git a/plugins/catalog-react/src/alpha/blueprints/EntityContextMenuItemBlueprint.tsx b/plugins/catalog-react/src/alpha/blueprints/EntityContextMenuItemBlueprint.tsx
index cf3a640e37..d2ce2b3cce 100644
--- a/plugins/catalog-react/src/alpha/blueprints/EntityContextMenuItemBlueprint.tsx
+++ b/plugins/catalog-react/src/alpha/blueprints/EntityContextMenuItemBlueprint.tsx
@@ -26,6 +26,7 @@ import ListItemText from '@material-ui/core/ListItemText';
import { useEntityContextMenu } from '../../hooks/useEntityContextMenu';
import type { Entity } from '@backstage/catalog-model';
import { useEntity } from '../../hooks/useEntity';
+
/** @alpha */
export type UseProps = () =>
| {