From 34c3e3e498fa50726226f722453506478ea8d5c0 Mon Sep 17 00:00:00 2001 From: Alex Andreev Date: Tue, 31 Jan 2023 13:33:50 +0300 Subject: [PATCH] Render subnamespace badge after name Signed-off-by: Alex Andreev --- .../namespace-tree-view.test.tsx.snap | 9 +++++++ .../+namespaces/namespace-tree-view.test.tsx | 15 ++++++++++- .../+namespaces/namespace-tree-view.tsx | 26 +++++++++++++++++-- 3 files changed, 47 insertions(+), 3 deletions(-) diff --git a/packages/core/src/renderer/components/+namespaces/__snapshots__/namespace-tree-view.test.tsx.snap b/packages/core/src/renderer/components/+namespaces/__snapshots__/namespace-tree-view.test.tsx.snap index b24e40bf88..b00ce8268b 100644 --- a/packages/core/src/renderer/components/+namespaces/__snapshots__/namespace-tree-view.test.tsx.snap +++ b/packages/core/src/renderer/components/+namespaces/__snapshots__/namespace-tree-view.test.tsx.snap @@ -60,6 +60,7 @@ exports[` once the subscribe resolves renders namespace wit >
  • @@ -90,6 +91,7 @@ exports[` once the subscribe resolves renders namespace wit
  • @@ -188,6 +190,7 @@ exports[` once the subscribe resolves renders namespace wit >
  • @@ -213,11 +216,17 @@ exports[` once the subscribe resolves renders namespace wit class="MuiTypography-root MuiTreeItem-label MuiTypography-body1" > service-1 + + S +
  • 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 45db5905c6..2bbab9bde5 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 @@ -167,6 +167,19 @@ describe("", () => { const result = render(); expect(result.baseElement).toMatchSnapshot(); - }) + }); + + it("renders an indicator badge for the subnamespace", () => { + const result = render(); + + expect(result.getByTestId("subnamespace-badge-for-service-1-1")).toBeInTheDocument(); + }); + + it("does not render an indicator badge for the true namespace", () => { + const result = render(); + const trueNamespace = result.getByTestId("namespace-team-c-1"); + + expect(trueNamespace.querySelector("[data-testid='subnamespace-badge-for-team-c-1']")).toBeNull(); + }); }); }); \ No newline at end of file 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 103d05bb17..f95a5805dd 100644 --- a/packages/core/src/renderer/components/+namespaces/namespace-tree-view.tsx +++ b/packages/core/src/renderer/components/+namespaces/namespace-tree-view.tsx @@ -18,13 +18,31 @@ interface Dependencies { function NonInjectableNamespaceTreeView({ root, namespaceStore }: Dependencies & NamespaceTreeViewProps) { const hierarchicalNamespaces = namespaceStore.getByLabel(["hnc.x-k8s.io/included-namespace=true"]); + function renderBadge(namespace: Namespace) { + if (!namespace.getAnnotations().find(annotation => annotation.includes("hnc.x-k8s.io/subnamespace-of"))) { + return null; + } + + return S; + } + function renderChildren(parent: Namespace) { const children = hierarchicalNamespaces.filter(ns => ns.getLabels().find(label => label === `${parent.getName()}.tree.hnc.x-k8s.io/depth=1`) ); return children.map(child => ( - + + {child.getName()} + {renderBadge(child)} + + )} + > {renderChildren(child)} )); @@ -43,7 +61,11 @@ function NonInjectableNamespaceTreeView({ root, namespaceStore }: Dependencies & defaultExpandIcon={} defaultEndIcon={} > - + {renderChildren(root)}