diff --git a/packages/core/src/renderer/components/+namespaces/namespace-tree-view.test.tsx b/packages/core/src/renderer/components/+namespaces/namespace-tree-view.test.tsx index ba53c3e494..5ad8ea6062 100644 --- a/packages/core/src/renderer/components/+namespaces/namespace-tree-view.test.tsx +++ b/packages/core/src/renderer/components/+namespaces/namespace-tree-view.test.tsx @@ -20,6 +20,10 @@ import { NamespaceTreeView } from "./namespace-tree-view"; import type { NamespaceStore } from "./store"; import namespaceStoreInjectable from "./store.injectable"; +jest.mock("react-router-dom", () => ({ + Link: ({ children }: { children: React.ReactNode }) => children, +})); + function createNamespace(name: string, labels?: Record, annotations?: Record): Namespace { return new Namespace({ apiVersion: "v1", diff --git a/packages/core/src/renderer/components/+namespaces/namespace-tree-view.tsx b/packages/core/src/renderer/components/+namespaces/namespace-tree-view.tsx index 4e8ea6c53e..bf704ae03c 100644 --- a/packages/core/src/renderer/components/+namespaces/namespace-tree-view.tsx +++ b/packages/core/src/renderer/components/+namespaces/namespace-tree-view.tsx @@ -2,8 +2,11 @@ import { alpha, SvgIcon, withStyles } from "@material-ui/core"; import { TreeItem, TreeItemProps, TreeView } from "@material-ui/lab"; import { withInjectables } from "@ogre-tools/injectable-react"; import React from "react"; +import { Link } from "react-router-dom"; import type { Namespace } from "../../../common/k8s-api/endpoints"; import { DrawerTitle } from "../drawer"; +import type { GetDetailsUrl } from "../kube-detail-params/get-details-url.injectable"; +import getDetailsUrlInjectable from "../kube-detail-params/get-details-url.injectable"; import type { NamespaceStore } from "./store"; import namespaceStoreInjectable from "./store.injectable"; @@ -13,9 +16,10 @@ interface NamespaceTreeViewProps { interface Dependencies { namespaceStore: NamespaceStore; + getDetailsUrl: GetDetailsUrl; } -function NonInjectableNamespaceTreeView({ root, namespaceStore }: Dependencies & NamespaceTreeViewProps) { +function NonInjectableNamespaceTreeView({ root, namespaceStore, getDetailsUrl }: Dependencies & NamespaceTreeViewProps) { const hierarchicalNamespaces = namespaceStore.getByLabel(["hnc.x-k8s.io/included-namespace=true"]); const expandedItems = hierarchicalNamespaces.map(ns => `namespace-${ns.getId()}`); @@ -39,7 +43,9 @@ function NonInjectableNamespaceTreeView({ root, namespaceStore }: Dependencies & data-testid={`namespace-${child.getId()}`} label={( <> - {child.getName()} + + {child.getName()} + {renderBadge(child)} )} @@ -115,6 +121,7 @@ const StyledTreeItem = withStyles((theme) => ({ export const NamespaceTreeView = withInjectables(NonInjectableNamespaceTreeView, { getProps: (di, props) => ({ namespaceStore: di.inject(namespaceStoreInjectable), + getDetailsUrl: di.inject(getDetailsUrlInjectable), ...props, }), });