diff --git a/src/app/page.tsx b/src/app/page.tsx index 4b6725f0..d3e94c3d 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -34,7 +34,7 @@ function CanvasPageContent() { useEffect(() => { if (token || getStoredLoginToken()) { - void fetchUserInfo(token); + void fetchUserInfo(token, { forceRefresh: true }); } }, [fetchUserInfo, token]); diff --git a/src/components/__tests__/ImageInputNode.test.tsx b/src/components/__tests__/ImageInputNode.test.tsx index 1913f7a7..64f2f19e 100644 --- a/src/components/__tests__/ImageInputNode.test.tsx +++ b/src/components/__tests__/ImageInputNode.test.tsx @@ -400,6 +400,27 @@ describe("ImageInputNode", () => { expect(screen.getByLabelText("Remove image")).toBeInTheDocument(); }); + it("should hide unavailable image editing and asset actions", () => { + render( + + + + ); + + expect(screen.queryByLabelText("Choose from assets")).not.toBeInTheDocument(); + expect(screen.queryByLabelText("Crop")).not.toBeInTheDocument(); + expect(screen.queryByLabelText("Draw")).not.toBeInTheDocument(); + expect(screen.queryByLabelText("Multi-angle")).not.toBeInTheDocument(); + expect(screen.queryByLabelText("Enhance")).not.toBeInTheDocument(); + expect(screen.queryByLabelText("Lighting")).not.toBeInTheDocument(); + expect(screen.queryByLabelText("Repaint")).not.toBeInTheDocument(); + expect(screen.queryByLabelText("Grid")).not.toBeInTheDocument(); + expect(screen.getAllByLabelText("Replace")).toHaveLength(2); + expect(screen.getByLabelText("Download image")).toBeInTheDocument(); + expect(screen.getAllByLabelText("Open preview")).toHaveLength(2); + expect(screen.getByLabelText("Remove image")).toBeInTheDocument(); + }); + it("should call updateNodeData to clear image when remove button is clicked", () => { render( @@ -558,7 +579,7 @@ describe("ImageInputNode", () => { const fileInput = document.querySelector('input[type="file"]') as HTMLInputElement; const clickSpy = vi.spyOn(fileInput, "click"); - fireEvent.click(screen.getByLabelText("Replace")); + fireEvent.click(screen.getAllByLabelText("Replace")[0]); expect(clickSpy).toHaveBeenCalled(); }); diff --git a/src/components/nodes/ImageInputNode.tsx b/src/components/nodes/ImageInputNode.tsx index f89adadc..6ba094db 100644 --- a/src/components/nodes/ImageInputNode.tsx +++ b/src/components/nodes/ImageInputNode.tsx @@ -43,14 +43,6 @@ function EmptyImageIcon() { } type ImageToolbarIconKind = - | "crop" - | "draw" - | "multiAngle" - | "enhance" - | "lighting" - | "repaint" - | "grid" - | "folder" | "download" | "focus" | "delete" @@ -66,22 +58,6 @@ function ImageToolbarIcon({ kind }: { kind: ImageToolbarIconKind }) { }; switch (kind) { - case "crop": - return ; - case "draw": - return ; - case "multiAngle": - return ; - case "enhance": - return ; - case "lighting": - return ; - case "repaint": - return ; - case "grid": - return ; - case "folder": - return ; case "download": return ; case "focus": @@ -93,23 +69,6 @@ function ImageToolbarIcon({ kind }: { kind: ImageToolbarIconKind }) { } } -function ToolbarDivider() { - return