refactor(web): reuse repository create dialog

- Extract the repository create dialog into a shared component
- Reuse the same clone/validation flow in project settings and repository management pages
- Keep the shared UI covered with focused tests

Quality gates: tsc --noEmit, vitest run src/components/repositories-settings-tab.test.tsx
This commit is contained in:
2026-05-22 18:43:03 +02:00
parent ebfe991a15
commit 5af4de0d7e
4 changed files with 250 additions and 280 deletions
@@ -46,6 +46,7 @@ describe("RepositoriesSettingsTab", () => {
fireEvent.change(screen.getByPlaceholderText(/repository-name/i), {
target: { value: "New Repo" },
});
fireEvent.click(screen.getByLabelText(/clone existing repository/i));
fireEvent.change(screen.getByPlaceholderText(/github.com\/user\/repo.git/i), {
target: { value: "https://github.com/user/repo.git" },
});
@@ -72,6 +73,7 @@ describe("RepositoriesSettingsTab", () => {
fireEvent.change(screen.getByPlaceholderText(/repository-name/i), {
target: { value: "New Repo" },
});
fireEvent.click(screen.getByLabelText(/clone existing repository/i));
fireEvent.click(screen.getByRole("button", { name: /clone repository/i }));
expect(screen.getByText(/remote url is required/i)).toBeInTheDocument();