Files
OpenHands/frontend/__tests__/components/features/chat/git-control-bar.test.tsx

46 lines
1.6 KiB
TypeScript

import { describe, it, expect } from "vitest";
describe("GitControlBar clone prompt format", () => {
// Helper function that mirrors the logic in git-control-bar.tsx
const generateClonePrompt = (
fullName: string,
gitProvider: string,
branchName: string,
) => {
const providerName =
gitProvider.charAt(0).toUpperCase() + gitProvider.slice(1);
return `Clone ${fullName} from ${providerName} and checkout branch ${branchName}.`;
};
it("should include GitHub in clone prompt for github provider", () => {
const prompt = generateClonePrompt("user/repo", "github", "main");
expect(prompt).toBe("Clone user/repo from Github and checkout branch main.");
});
it("should include GitLab in clone prompt for gitlab provider", () => {
const prompt = generateClonePrompt("group/project", "gitlab", "develop");
expect(prompt).toBe(
"Clone group/project from Gitlab and checkout branch develop.",
);
});
it("should handle different branch names", () => {
const prompt = generateClonePrompt(
"hieptl.developer-group/hieptl.developer-project",
"gitlab",
"add-batman-microagent",
);
expect(prompt).toBe(
"Clone hieptl.developer-group/hieptl.developer-project from Gitlab and checkout branch add-batman-microagent.",
);
});
it("should capitalize first letter of provider name", () => {
const githubPrompt = generateClonePrompt("a/b", "github", "main");
const gitlabPrompt = generateClonePrompt("a/b", "gitlab", "main");
expect(githubPrompt).toContain("from Github");
expect(gitlabPrompt).toContain("from Gitlab");
});
});