From e949ae0e2fc350ed1e74ce48b50ac812efd92f30 Mon Sep 17 00:00:00 2001 From: Ivan Devat Date: Mon, 20 Jan 2025 12:13:25 +0100 Subject: [PATCH] fix: filter clones by agent name in resource tree --- .../src/app/view/cluster/resources/tree/filter.ts | 13 +++++++------ .../test/src/test/scenes/resources/tree.test.ts | 14 +++++++++++--- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/packages/app/src/app/view/cluster/resources/tree/filter.ts b/packages/app/src/app/view/cluster/resources/tree/filter.ts index 118e6cc2..b047a094 100644 --- a/packages/app/src/app/view/cluster/resources/tree/filter.ts +++ b/packages/app/src/app/view/cluster/resources/tree/filter.ts @@ -1,4 +1,4 @@ -import {Resource} from "app/view/cluster/types"; +import type {FenceDevice, Resource} from "app/view/cluster/types"; type Group = Extract; type Clone = Extract; @@ -14,13 +14,14 @@ const createResourceFilter = (filter: string) => { const match = (searchable: string) => searchable.toLowerCase().includes(filter.toLowerCase()); + const matchPrimitive = (primitive: Primitive | FenceDevice) => + match(primitive.id) || match(primitive.agentName); + const filterPrimitive = (primitive: Primitive) => - match(primitive.id) || match(primitive.agentName) ? primitive : null; + matchPrimitive(primitive) ? primitive : null; const filterGroup = (group: Group): Group | null => { - const primitives = group.resources.filter( - primitive => match(primitive.id) || match(primitive.agentName), - ); + const primitives = group.resources.filter(matchPrimitive); return match(group.id) || primitives.length > 0 ? {...group, resources: primitives} : null; @@ -34,7 +35,7 @@ const createResourceFilter = (filter: string) => { : null; } - if (match(clone.member.id)) { + if (matchPrimitive(clone.member)) { return clone; } diff --git a/packages/test/src/test/scenes/resources/tree.test.ts b/packages/test/src/test/scenes/resources/tree.test.ts index f9b118f8..19190955 100644 --- a/packages/test/src/test/scenes/resources/tree.test.ts +++ b/packages/test/src/test/scenes/resources/tree.test.ts @@ -19,7 +19,15 @@ const resourceList = [ "Clone1", cs.group("Group2", [cs.primitive("ResourceD"), cs.primitive("ResourceE")]), ), - cs.clone("Clone2", cs.primitive("ResourceF")), + cs.clone( + "Clone2", + cs.primitive("ResourceF", { + agentname: "ocf:heartbeat:apache", + provider: "heartbeat", + class: "ocf", + type: "apache", + }), + ), ]; const primitiveItem = (id: string) => @@ -129,7 +137,7 @@ describe("Resource tree filter", () => { await isAbsent(groupItem("Group2")); await isAbsent(primitiveItem("ResourceD")); await isAbsent(primitiveItem("ResourceE")); - await isAbsent(cloneItem("Clone2")); - await isAbsent(primitiveItem("ResourceF")); + await isVisible(cloneItem("Clone2")); + await isVisible(primitiveItem("ResourceF")); }); }); -- 2.48.1