1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Expand all nodes by default

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
Alex Andreev 2023-01-31 14:52:29 +03:00
parent f0111391f2
commit 803348dad1
3 changed files with 140 additions and 50 deletions

View File

@ -59,7 +59,7 @@ exports[`<NamespaceTreeView /> once the subscribe resolves renders 2 levels deep
class="MuiCollapse-wrapperInner" class="MuiCollapse-wrapperInner"
> >
<li <li
class="MuiTreeItem-root" class="MuiTreeItem-root Mui-expanded"
data-testid="namespace-level-deep-child-a-1" data-testid="namespace-level-deep-child-a-1"
role="treeitem" role="treeitem"
tabindex="-1" tabindex="-1"
@ -88,9 +88,23 @@ exports[`<NamespaceTreeView /> once the subscribe resolves renders 2 levels deep
level-deep-child-a level-deep-child-a
</div> </div>
</div> </div>
<ul
class="MuiCollapse-root MuiTreeItem-group Component-group-12 MuiCollapse-entered"
role="group"
style="min-height: 0px;"
>
<div
class="MuiCollapse-wrapper"
>
<div
class="MuiCollapse-wrapperInner"
/>
</div>
</ul>
</li> </li>
<li <li
class="MuiTreeItem-root" aria-expanded="true"
class="MuiTreeItem-root Mui-expanded"
data-testid="namespace-level-deep-child-b-1" data-testid="namespace-level-deep-child-b-1"
role="treeitem" role="treeitem"
tabindex="-1" tabindex="-1"
@ -103,13 +117,13 @@ exports[`<NamespaceTreeView /> once the subscribe resolves renders 2 levels deep
> >
<svg <svg
aria-hidden="true" aria-hidden="true"
class="MuiSvgIcon-root close MuiSvgIcon-fontSizeInherit" class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit"
focusable="false" focusable="false"
style="width: 14px; height: 14px;" style="width: 14px; height: 14px;"
viewBox="0 0 24 24" viewBox="0 0 24 24"
> >
<path <path
d="M17.485 17.512q-.281.281-.682.281t-.696-.268l-4.12-4.147-4.12 4.147q-.294.268-.696.268t-.682-.281-.281-.682.294-.669l4.12-4.147-4.12-4.147q-.294-.268-.294-.669t.281-.682.682-.281.696 .268l4.12 4.147 4.12-4.147q.294-.268.696-.268t.682.281 .281.669-.294.682l-4.12 4.147 4.12 4.147q.294.268 .294.669t-.281.682zM22.047 22.074v0 0-20.147 0h-20.12v0 20.147 0h20.12zM22.047 24h-20.12q-.803 0-1.365-.562t-.562-1.365v-20.147q0-.776.562-1.351t1.365-.575h20.147q.776 0 1.351.575t.575 1.351v20.147q0 .803-.575 1.365t-1.378.562v0z" d="M22.047 22.074v0 0-20.147 0h-20.12v0 20.147 0h20.12zM22.047 24h-20.12q-.803 0-1.365-.562t-.562-1.365v-20.147q0-.776.562-1.351t1.365-.575h20.147q.776 0 1.351.575t.575 1.351v20.147q0 .803-.575 1.365t-1.378.562v0zM17.873 11.023h-11.826q-.375 0-.669.281t-.294.682v0q0 .401.294 .682t.669.281h11.826q.375 0 .669-.281t.294-.682v0q0-.401-.294-.682t-.669-.281z"
/> />
</svg> </svg>
</div> </div>
@ -119,37 +133,64 @@ exports[`<NamespaceTreeView /> once the subscribe resolves renders 2 levels deep
level-deep-child-b level-deep-child-b
</div> </div>
</div> </div>
</li> <ul
<li class="MuiCollapse-root MuiTreeItem-group Component-group-12 MuiCollapse-entered"
class="MuiTreeItem-root" role="group"
data-testid="namespace-level-deep-subchild-a-1" style="min-height: 0px;"
role="treeitem"
tabindex="-1"
>
<div
class="MuiTreeItem-content"
> >
<div <div
class="MuiTreeItem-iconContainer Component-iconContainer-11" class="MuiCollapse-wrapper"
> >
<svg <div
aria-hidden="true" class="MuiCollapse-wrapperInner"
class="MuiSvgIcon-root close MuiSvgIcon-fontSizeInherit"
focusable="false"
style="width: 14px; height: 14px;"
viewBox="0 0 24 24"
> >
<path <li
d="M17.485 17.512q-.281.281-.682.281t-.696-.268l-4.12-4.147-4.12 4.147q-.294.268-.696.268t-.682-.281-.281-.682.294-.669l4.12-4.147-4.12-4.147q-.294-.268-.294-.669t.281-.682.682-.281.696 .268l4.12 4.147 4.12-4.147q.294-.268.696-.268t.682.281 .281.669-.294.682l-4.12 4.147 4.12 4.147q.294.268 .294.669t-.281.682zM22.047 22.074v0 0-20.147 0h-20.12v0 20.147 0h20.12zM22.047 24h-20.12q-.803 0-1.365-.562t-.562-1.365v-20.147q0-.776.562-1.351t1.365-.575h20.147q.776 0 1.351.575t.575 1.351v20.147q0 .803-.575 1.365t-1.378.562v0z" class="MuiTreeItem-root Mui-expanded"
/> data-testid="namespace-level-deep-subchild-a-1"
</svg> role="treeitem"
tabindex="-1"
>
<div
class="MuiTreeItem-content"
>
<div
class="MuiTreeItem-iconContainer Component-iconContainer-11"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root close MuiSvgIcon-fontSizeInherit"
focusable="false"
style="width: 14px; height: 14px;"
viewBox="0 0 24 24"
>
<path
d="M17.485 17.512q-.281.281-.682.281t-.696-.268l-4.12-4.147-4.12 4.147q-.294.268-.696.268t-.682-.281-.281-.682.294-.669l4.12-4.147-4.12-4.147q-.294-.268-.294-.669t.281-.682.682-.281.696 .268l4.12 4.147 4.12-4.147q.294-.268.696-.268t.682.281 .281.669-.294.682l-4.12 4.147 4.12 4.147q.294.268 .294.669t-.281.682zM22.047 22.074v0 0-20.147 0h-20.12v0 20.147 0h20.12zM22.047 24h-20.12q-.803 0-1.365-.562t-.562-1.365v-20.147q0-.776.562-1.351t1.365-.575h20.147q.776 0 1.351.575t.575 1.351v20.147q0 .803-.575 1.365t-1.378.562v0z"
/>
</svg>
</div>
<div
class="MuiTypography-root MuiTreeItem-label MuiTypography-body1"
>
level-deep-subchild-a
</div>
</div>
<ul
class="MuiCollapse-root MuiTreeItem-group Component-group-12 MuiCollapse-entered"
role="group"
style="min-height: 0px;"
>
<div
class="MuiCollapse-wrapper"
>
<div
class="MuiCollapse-wrapperInner"
/>
</div>
</ul>
</li>
</div>
</div> </div>
<div </ul>
class="MuiTypography-root MuiTreeItem-label MuiTypography-body1"
>
level-deep-subchild-a
</div>
</div>
</li> </li>
</div> </div>
</div> </div>
@ -220,7 +261,7 @@ exports[`<NamespaceTreeView /> once the subscribe resolves renders namespace wit
class="MuiCollapse-wrapperInner" class="MuiCollapse-wrapperInner"
> >
<li <li
class="MuiTreeItem-root" class="MuiTreeItem-root Mui-expanded"
data-testid="namespace-team-a-1" data-testid="namespace-team-a-1"
role="treeitem" role="treeitem"
tabindex="-1" tabindex="-1"
@ -249,9 +290,22 @@ exports[`<NamespaceTreeView /> once the subscribe resolves renders namespace wit
team-a team-a
</div> </div>
</div> </div>
<ul
class="MuiCollapse-root MuiTreeItem-group Component-group-4 MuiCollapse-entered"
role="group"
style="min-height: 0px;"
>
<div
class="MuiCollapse-wrapper"
>
<div
class="MuiCollapse-wrapperInner"
/>
</div>
</ul>
</li> </li>
<li <li
class="MuiTreeItem-root" class="MuiTreeItem-root Mui-expanded"
data-testid="namespace-team-b-1" data-testid="namespace-team-b-1"
role="treeitem" role="treeitem"
tabindex="-1" tabindex="-1"
@ -280,6 +334,19 @@ exports[`<NamespaceTreeView /> once the subscribe resolves renders namespace wit
team-b team-b
</div> </div>
</div> </div>
<ul
class="MuiCollapse-root MuiTreeItem-group Component-group-4 MuiCollapse-entered"
role="group"
style="min-height: 0px;"
>
<div
class="MuiCollapse-wrapper"
>
<div
class="MuiCollapse-wrapperInner"
/>
</div>
</ul>
</li> </li>
</div> </div>
</div> </div>
@ -350,7 +417,7 @@ exports[`<NamespaceTreeView /> once the subscribe resolves renders namespace wit
class="MuiCollapse-wrapperInner" class="MuiCollapse-wrapperInner"
> >
<li <li
class="MuiTreeItem-root" class="MuiTreeItem-root Mui-expanded"
data-testid="namespace-service-1-1" data-testid="namespace-service-1-1"
role="treeitem" role="treeitem"
tabindex="-1" tabindex="-1"
@ -384,9 +451,22 @@ exports[`<NamespaceTreeView /> once the subscribe resolves renders namespace wit
</span> </span>
</div> </div>
</div> </div>
<ul
class="MuiCollapse-root MuiTreeItem-group Component-group-6 MuiCollapse-entered"
role="group"
style="min-height: 0px;"
>
<div
class="MuiCollapse-wrapper"
>
<div
class="MuiCollapse-wrapperInner"
/>
</div>
</ul>
</li> </li>
<li <li
class="MuiTreeItem-root" class="MuiTreeItem-root Mui-expanded"
data-testid="namespace-team-c-1" data-testid="namespace-team-c-1"
role="treeitem" role="treeitem"
tabindex="-1" tabindex="-1"
@ -415,6 +495,19 @@ exports[`<NamespaceTreeView /> once the subscribe resolves renders namespace wit
team-c team-c
</div> </div>
</div> </div>
<ul
class="MuiCollapse-root MuiTreeItem-group Component-group-6 MuiCollapse-entered"
role="group"
style="min-height: 0px;"
>
<div
class="MuiCollapse-wrapper"
>
<div
class="MuiCollapse-wrapperInner"
/>
</div>
</ul>
</li> </li>
</div> </div>
</div> </div>
@ -449,7 +542,7 @@ exports[`<NamespaceTreeView /> once the subscribe resolves renders one namespace
role="tree" role="tree"
> >
<li <li
class="MuiTreeItem-root Mui-expanded" class="MuiTreeItem-root"
data-testid="namespace-single-root-1" data-testid="namespace-single-root-1"
role="treeitem" role="treeitem"
tabindex="0" tabindex="0"
@ -478,19 +571,6 @@ exports[`<NamespaceTreeView /> once the subscribe resolves renders one namespace
single-root single-root
</div> </div>
</div> </div>
<ul
class="MuiCollapse-root MuiTreeItem-group Component-group-2 MuiCollapse-entered"
role="group"
style="min-height: 0px;"
>
<div
class="MuiCollapse-wrapper"
>
<div
class="MuiCollapse-wrapperInner"
/>
</div>
</ul>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -99,8 +99,9 @@ const levelDeepChildB = createNamespace("level-deep-child-b", {
const levelDeepSubChildA = createNamespace("level-deep-subchild-a", { const levelDeepSubChildA = createNamespace("level-deep-subchild-a", {
"hnc.x-k8s.io/included-namespace": "true", "hnc.x-k8s.io/included-namespace": "true",
"levels-deep.tree.hnc.x-k8s.io/depth": "1", "levels-deep.tree.hnc.x-k8s.io/depth": "2",
"level-deep-child-b.tree.hnc.x-k8s.io/depth": "0", "level-deep-child-b.tree.hnc.x-k8s.io/depth": "1",
"level-deep-subchild-a.tree.hnc.x-k8s.io/depth": "0",
}); });
describe("<NamespaceTreeView />", () => { describe("<NamespaceTreeView />", () => {
@ -213,5 +214,12 @@ describe("<NamespaceTreeView />", () => {
expect(result.baseElement).toMatchSnapshot(); expect(result.baseElement).toMatchSnapshot();
}); });
it("expands children items", () => {
const result = render(<NamespaceTreeView root={levelsDeep} />);
const deepest = result.getByTestId("namespace-level-deep-child-b-1");
expect(deepest).toHaveAttribute("aria-expanded", "true");
});
}); });
}); });

View File

@ -17,6 +17,7 @@ interface Dependencies {
function NonInjectableNamespaceTreeView({ root, namespaceStore }: Dependencies & NamespaceTreeViewProps) { function NonInjectableNamespaceTreeView({ root, namespaceStore }: Dependencies & NamespaceTreeViewProps) {
const hierarchicalNamespaces = namespaceStore.getByLabel(["hnc.x-k8s.io/included-namespace=true"]); const hierarchicalNamespaces = namespaceStore.getByLabel(["hnc.x-k8s.io/included-namespace=true"]);
const expandedItems = hierarchicalNamespaces.map(ns => `namespace-${ns.getId()}`);
function renderBadge(namespace: Namespace) { function renderBadge(namespace: Namespace) {
if (!namespace.getAnnotations().find(annotation => annotation.includes("hnc.x-k8s.io/subnamespace-of"))) { if (!namespace.getAnnotations().find(annotation => annotation.includes("hnc.x-k8s.io/subnamespace-of"))) {
@ -60,6 +61,7 @@ function NonInjectableNamespaceTreeView({ root, namespaceStore }: Dependencies &
defaultCollapseIcon={<MinusSquare />} defaultCollapseIcon={<MinusSquare />}
defaultExpandIcon={<PlusSquare />} defaultExpandIcon={<PlusSquare />}
defaultEndIcon={<CloseSquare />} defaultEndIcon={<CloseSquare />}
expanded={expandedItems}
> >
<StyledTreeItem <StyledTreeItem
nodeId={`namespace-${root.getId()}`} nodeId={`namespace-${root.getId()}`}