diff --git a/src/components/layout/node-preview-panel.tsx b/src/components/layout/node-preview-panel.tsx index 70f7edb..cefda8d 100644 --- a/src/components/layout/node-preview-panel.tsx +++ b/src/components/layout/node-preview-panel.tsx @@ -1129,7 +1129,7 @@ export function NodePreviewPanel({ node, onBack, schemas }: NodePreviewPanelProp {/* Edit node */} {isAdmin && ( - openEdit(currentNode)}> + openEdit(fullNode ?? currentNode)}> Edit node diff --git a/src/lib/__tests__/node-preview-panel.test.tsx b/src/lib/__tests__/node-preview-panel.test.tsx index d8e45ee..f4628b7 100644 --- a/src/lib/__tests__/node-preview-panel.test.tsx +++ b/src/lib/__tests__/node-preview-panel.test.tsx @@ -1376,7 +1376,7 @@ describe("NodePreviewPanel – pencil edit button", () => { expect(screen.queryByText("Edit node")).toBeNull() }) - it("calls openEdit with the current node when 'Edit node' is clicked", async () => { + it("falls back to currentNode when fullNode is not loaded", async () => { const { fireEvent: fe } = await import("@testing-library/react") userStoreOverrides = { pubKey: "03admin", routeHint: "", isAdmin: true } render() @@ -1393,6 +1393,30 @@ describe("NodePreviewPanel – pencil edit button", () => { expect.objectContaining({ ref_id: BASE_NODE.ref_id }) ) }) + + it("calls openEdit with fullNode when it is available", async () => { + const { fireEvent: fe } = await import("@testing-library/react") + userStoreOverrides = { pubKey: "03admin", routeHint: "", isAdmin: true } + mockApiGet.mockResolvedValue( + makeGraphData({ ...BASE_NODE, properties: { name: "Test Node", description: "Full description" } }) + ) + render() + + await waitFor(() => expect(screen.getByText("Test Node")).toBeInTheDocument()) + + const trigger = document.querySelector("button[title='More actions']") as HTMLElement + fe.click(trigger) + const editItem = await waitFor(() => screen.getByText("Edit node")) + fe.click(editItem) + + expect(mockOpenEdit).toHaveBeenCalledOnce() + expect(mockOpenEdit).toHaveBeenCalledWith( + expect.objectContaining({ + ref_id: BASE_NODE.ref_id, + properties: expect.objectContaining({ description: "Full description" }), + }) + ) + }) }) // ---------------------------------------------------------------------------