From f02ba3cbbd5a08e6c230844377a6e4ceaea5fe40 Mon Sep 17 00:00:00 2001 From: chan Date: Fri, 27 Feb 2026 10:52:11 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B3=84=EC=B8=B5=20=ED=91=9C=EC=8B=9C=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adminfront/playwright-report/index.html | 2 +- .../routes/TenantUserGroupsTab.tsx | 62 +---------- adminfront/src/lib/tenantTree.test.ts | 93 ++++++++++++++++ adminfront/src/lib/tenantTree.ts | 69 ++++++++++++ adminfront/tests/tenants.spec.ts | 103 ++++++++++++++++++ image.png | Bin 0 -> 58287 bytes 6 files changed, 271 insertions(+), 58 deletions(-) create mode 100644 adminfront/src/lib/tenantTree.test.ts create mode 100644 adminfront/src/lib/tenantTree.ts create mode 100644 image.png diff --git a/adminfront/playwright-report/index.html b/adminfront/playwright-report/index.html index c67d9584..84d1d61f 100644 --- a/adminfront/playwright-report/index.html +++ b/adminfront/playwright-report/index.html @@ -82,4 +82,4 @@ Error generating stack: `+a.message+`
- \ No newline at end of file + \ No newline at end of file diff --git a/adminfront/src/features/user-groups/routes/TenantUserGroupsTab.tsx b/adminfront/src/features/user-groups/routes/TenantUserGroupsTab.tsx index 13bc0537..03533254 100644 --- a/adminfront/src/features/user-groups/routes/TenantUserGroupsTab.tsx +++ b/adminfront/src/features/user-groups/routes/TenantUserGroupsTab.tsx @@ -65,11 +65,7 @@ import { updateUser, } from "../../../lib/adminApi"; import { t } from "../../../lib/i18n"; - -type TenantNode = TenantSummary & { - children: TenantNode[]; - recursiveMemberCount: number; -}; +import { type TenantNode, buildTenantFullTree } from "../../../lib/tenantTree"; const getTenantIcon = (type?: string) => { switch (type?.toUpperCase()) { @@ -779,58 +775,10 @@ function TenantUserGroupsTab() { const allTenants = data?.items ?? []; - const { currentBase, subTree } = useMemo(() => { - if (allTenants.length === 0) return { currentBase: null, subTree: [] }; - - const tenantMap = new Map(); - for (const t of allTenants) { - tenantMap.set(t.id, { - ...t, - children: [], - recursiveMemberCount: t.memberCount || 0, - }); - } - - // Build initial children relations - for (const t of allTenants) { - if (t.parentId) { - const parent = tenantMap.get(t.parentId); - const child = tenantMap.get(t.id); - if (parent && child) { - parent.children.push(child); - } - } - } - - // Function to calculate recursive counts - const calculateRecursive = (node: TenantNode): number => { - let total = node.memberCount || 0; - for (const child of node.children) { - total += calculateRecursive(child); - } - node.recursiveMemberCount = total; - return total; - }; - - // Calculate for all root nodes (those without parent or top-level in current context) - for (const node of tenantMap.values()) { - // We only strictly need to calculate from the top-most nodes to cover everything - if (!node.parentId) { - calculateRecursive(node); - } - } - - // Re-calculate specifically for our current tenant to be sure if it wasn't a global root - const base = tenantMap.get(tenantId); - if (base) { - calculateRecursive(base); - } - - return { - currentBase: base || null, - subTree: base ? base.children : [], - }; - }, [allTenants, tenantId]); + const { currentBase, subTree } = useMemo( + () => buildTenantFullTree(allTenants, tenantId), + [allTenants, tenantId], + ); const handleAdd = (id: string) => updateParentMutation.mutate({ id, parentId: tenantId }); diff --git a/adminfront/src/lib/tenantTree.test.ts b/adminfront/src/lib/tenantTree.test.ts new file mode 100644 index 00000000..eb277ce7 --- /dev/null +++ b/adminfront/src/lib/tenantTree.test.ts @@ -0,0 +1,93 @@ +import { describe, expect, it } from "vitest"; +import type { TenantSummary } from "./adminApi"; +import { buildTenantFullTree } from "./tenantTree"; + +describe("tenantTree utility", () => { + const mockTenants: TenantSummary[] = [ + { + id: "root-1", + name: "Root", + slug: "root", + type: "COMPANY", + memberCount: 10, + parentId: undefined, + description: "", + status: "active", + createdAt: "", + updatedAt: "", + }, + { + id: "child-1", + name: "Child 1", + slug: "child-1", + type: "USER_GROUP", + memberCount: 5, + parentId: "root-1", + description: "", + status: "active", + createdAt: "", + updatedAt: "", + }, + { + id: "grandchild-1", + name: "Grandchild 1", + slug: "grandchild-1", + type: "USER_GROUP", + memberCount: 2, + parentId: "child-1", + description: "", + status: "active", + createdAt: "", + updatedAt: "", + }, + ]; + + it("calculates recursive member counts correctly", () => { + const { currentBase } = buildTenantFullTree(mockTenants, "root-1"); + + expect(currentBase).not.toBeNull(); + if (currentBase) { + // Direct: 10, Child: 5, Grandchild: 2 -> Total: 17 + expect(currentBase.recursiveMemberCount).toBe(17); + expect(currentBase.children).toHaveLength(1); + + const child = currentBase.children[0]; + // Direct: 5, Grandchild: 2 -> Total: 7 + expect(child.recursiveMemberCount).toBe(7); + expect(child.children).toHaveLength(1); + + const grandchild = child.children[0]; + // Direct: 2 -> Total: 2 + expect(grandchild.recursiveMemberCount).toBe(2); + expect(grandchild.children).toHaveLength(0); + } + }); + + it("returns null currentBase if rootId is not found", () => { + const { currentBase } = buildTenantFullTree(mockTenants, "non-existent"); + expect(currentBase).toBeNull(); + }); + + it("builds correct structure with multiple roots", () => { + const multiRootTenants: TenantSummary[] = [ + ...mockTenants, + { + id: "root-2", + name: "Root 2", + slug: "root-2", + type: "COMPANY", + memberCount: 3, + parentId: undefined, + description: "", + status: "active", + createdAt: "", + updatedAt: "", + }, + ]; + + const { subTree } = buildTenantFullTree(multiRootTenants); + expect(subTree).toHaveLength(2); + expect(subTree.map(n => n.id)).toContain("root-1"); + expect(subTree.map(n => n.id)).toContain("root-2"); + }); +}); diff --git a/adminfront/src/lib/tenantTree.ts b/adminfront/src/lib/tenantTree.ts new file mode 100644 index 00000000..36b5a4a2 --- /dev/null +++ b/adminfront/src/lib/tenantTree.ts @@ -0,0 +1,69 @@ +import type { TenantSummary } from "./adminApi"; + +export type TenantNode = TenantSummary & { + children: TenantNode[]; + recursiveMemberCount: number; +}; + +/** + * Builds a hierarchical tree from a flat list of tenants and calculates + * direct and recursive member counts for each node. + */ +export function buildTenantFullTree( + allTenants: TenantSummary[], + rootId?: string, +): { currentBase: TenantNode | null; subTree: TenantNode[] } { + if (allTenants.length === 0) return { currentBase: null, subTree: [] }; + + const tenantMap = new Map(); + for (const t of allTenants) { + tenantMap.set(t.id, { + ...t, + children: [], + recursiveMemberCount: t.memberCount || 0, + }); + } + + // Build initial children relations + for (const t of allTenants) { + if (t.parentId) { + const parent = tenantMap.get(t.parentId); + const child = tenantMap.get(t.id); + if (parent && child) { + parent.children.push(child); + } + } + } + + // Function to calculate recursive counts + const calculateRecursive = (node: TenantNode): number => { + let total = node.memberCount || 0; + for (const child of node.children) { + total += calculateRecursive(child); + } + node.recursiveMemberCount = total; + return total; + }; + + // Calculate for all top-level nodes (those without parent) + for (const node of tenantMap.values()) { + if (!node.parentId) { + calculateRecursive(node); + } + } + + // If a specific rootId is provided, find and return its subtree + if (rootId) { + const base = tenantMap.get(rootId); + if (base) { + // Re-calculate specifically for our current tenant to be sure if it wasn't a global root + calculateRecursive(base); + return { currentBase: base, subTree: base.children }; + } + return { currentBase: null, subTree: [] }; + } + + // If no rootId, return all top-level roots as subTree + const roots = Array.from(tenantMap.values()).filter((n) => !n.parentId); + return { currentBase: null, subTree: roots }; +} diff --git a/adminfront/tests/tenants.spec.ts b/adminfront/tests/tenants.spec.ts index da5b3862..253e1b76 100644 --- a/adminfront/tests/tenants.spec.ts +++ b/adminfront/tests/tenants.spec.ts @@ -94,4 +94,107 @@ test.describe("Tenants Management", () => { await page.fill("input >> nth=0", "Valid Name"); await expect(submitBtn).not.toBeDisabled(); }); + + test("should show organization hierarchy and member list distinction", async ({ + page, + }) => { + // Mock parent tenant and its children + const mockTenants = [ + { + id: "parent-1", + name: "Parent Org", + slug: "parent-slug", + status: "active", + type: "COMPANY", + memberCount: 5, + parentId: null, + }, + { + id: "child-1", + name: "Child Team", + slug: "child-slug", + status: "active", + type: "USER_GROUP", + memberCount: 3, + parentId: "parent-1", + }, + ]; + + await page.route("**/api/v1/admin/tenants*", async (route) => { + await route.fulfill({ + json: { + items: mockTenants, + total: 2, + limit: 1000, + offset: 0, + }, + }); + }); + + // Mock members for parent and child + await page.route( + "**/api/v1/admin/users?*companyCode=parent-slug*", + async (route) => { + await route.fulfill({ + json: { + items: [{ id: "u1", name: "User One", email: "u1@parent.com" }], + total: 1, + }, + }); + }, + ); + + await page.route( + "**/api/v1/admin/users?*companyCode=child-slug*", + async (route) => { + await route.fulfill({ + json: { + items: [{ id: "u2", name: "User Two", email: "u2@child.com" }], + total: 1, + }, + }); + }, + ); + + await page.goto("/tenants/parent-1/organization"); + + // Wait for the table to appear + await expect(page.locator("table")).toBeVisible(); + + // Check if hierarchy shows correctly + await expect(page.locator("table")).toContainText("Parent Org"); + await expect(page.locator("table")).toContainText("Child Team"); + + // Check if member counts (Direct/Total) are displayed + // Parent should have Direct 5, Total 8 + const parentRow = page.locator("tr", { hasText: "Parent Org" }); + await expect(parentRow).toContainText("5"); // Direct + await expect(parentRow).toContainText("8"); // Total (5 + 3) + + // Check for either English or Korean labels + const hasDirectLabel = await parentRow.evaluate(el => + el.textContent?.includes("Direct") || el.textContent?.includes("소속") + ); + const hasTotalLabel = await parentRow.evaluate(el => + el.textContent?.includes("Total") || el.textContent?.includes("전체") + ); + expect(hasDirectLabel).toBe(true); + expect(hasTotalLabel).toBe(true); + + // Open Member List Dialog - Click the members count button + const memberButton = parentRow.getByRole("button").filter({ hasText: /Direct|소속/ }); + await memberButton.click(); + + // Check Tabs in Member List Dialog + // Use regex to match either language, ignoring the count suffix + await expect(page.locator('button[role="tab"]').filter({ hasText: /소속 멤버|Direct Members/ })).toBeVisible(); + await expect(page.locator('button[role="tab"]').filter({ hasText: /하위 조직 멤버|Descendant Members/ })).toBeVisible(); + + // Direct Members Tab should show parent's user + await expect(page.locator("role=dialog")).toContainText("u1@parent.com"); + + // Switch to Descendant Members Tab + await page.click('button[role="tab"]:has-text("하위 조직 멤버"), button[role="tab"]:has-text("Descendant Members")'); + await expect(page.locator("role=dialog")).toContainText("u2@child.com"); + }); }); diff --git a/image.png b/image.png new file mode 100644 index 0000000000000000000000000000000000000000..f6fc697bb74921d7448ba0716f99c434dbb965a0 GIT binary patch literal 58287 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 literal 0 HcmV?d00001