From fee393df1ff76e9e75c3cdc96cbcbb4a223e9912 Mon Sep 17 00:00:00 2001 From: Manu Date: Mon, 4 May 2026 14:50:17 +0200 Subject: [PATCH] fix(views): show full repo URLs in project creation (#2045) --- packages/views/modals/create-project.test.tsx | 168 ++++++++++++++++++ packages/views/modals/create-project.tsx | 30 +++- 2 files changed, 196 insertions(+), 2 deletions(-) create mode 100644 packages/views/modals/create-project.test.tsx diff --git a/packages/views/modals/create-project.test.tsx b/packages/views/modals/create-project.test.tsx new file mode 100644 index 000000000..bbe5cae48 --- /dev/null +++ b/packages/views/modals/create-project.test.tsx @@ -0,0 +1,168 @@ +import React from "react"; +import { describe, expect, it, vi } from "vitest"; +import { render, screen } from "@testing-library/react"; + +const longRepoUrl = + "https://github.com/multica-ai/a-very-long-repository-name-that-needs-a-tooltip"; + +vi.mock("@tanstack/react-query", () => ({ + useQuery: () => ({ data: [] }), +})); + +vi.mock("@multica/core/projects/mutations", () => ({ + useCreateProject: () => ({ mutateAsync: vi.fn() }), +})); + +vi.mock("@multica/core/projects", () => ({ + useProjectDraftStore: (selector: (state: unknown) => unknown) => + selector({ + draft: { + title: "", + description: "", + status: "planned", + priority: "medium", + leadType: undefined, + leadId: undefined, + icon: undefined, + }, + setDraft: vi.fn(), + clearDraft: vi.fn(), + }), +})); + +vi.mock("@multica/core/hooks", () => ({ + useWorkspaceId: () => "workspace-1", +})); + +vi.mock("@multica/core/paths", () => ({ + useCurrentWorkspace: () => ({ + id: "workspace-1", + name: "Test Workspace", + slug: "test-workspace", + repos: [{ url: longRepoUrl }], + }), + useWorkspacePaths: () => ({ + projectDetail: (id: string) => `/test-workspace/projects/${id}`, + }), +})); + +vi.mock("@multica/core/workspace/queries", () => ({ + memberListOptions: () => ({ queryKey: ["members"], queryFn: vi.fn() }), + agentListOptions: () => ({ queryKey: ["agents"], queryFn: vi.fn() }), +})); + +vi.mock("@multica/core/workspace/hooks", () => ({ + useActorName: () => ({ getActorName: vi.fn() }), +})); + +vi.mock("../navigation", () => ({ + useNavigation: () => ({ push: vi.fn() }), +})); + +vi.mock("../editor", () => { + const ContentEditor = React.forwardRef( + ({ placeholder }, ref) =>