test: 新增一波测试文件

This commit is contained in:
claude-code-best
2026-04-02 16:21:24 +08:00
parent 8697c91668
commit 799dacc407
3 changed files with 123 additions and 18 deletions

View File

@@ -131,4 +131,65 @@ describe("detectGitOperation", () => {
expect(result.branch!.action).toBe("merged");
expect(result.branch!.ref).toBe("develop");
});
test("detects gh pr edit operation", () => {
const result = detectGitOperation(
"gh pr edit 42 --title 'new title'",
"https://github.com/owner/repo/pull/42"
);
expect(result.pr).toBeDefined();
expect(result.pr!.number).toBe(42);
expect(result.pr!.action).toBe("edited");
});
test("detects gh pr comment operation", () => {
const result = detectGitOperation(
"gh pr comment 42 --body 'looks good'",
"https://github.com/owner/repo/pull/42"
);
expect(result.pr).toBeDefined();
expect(result.pr!.number).toBe(42);
expect(result.pr!.action).toBe("commented");
});
test("detects gh pr close operation", () => {
const result = detectGitOperation(
"gh pr close 42",
"✓ Closed pull request owner/repo#42"
);
expect(result.pr).toBeDefined();
expect(result.pr!.number).toBe(42);
expect(result.pr!.action).toBe("closed");
});
test("detects gh pr ready operation", () => {
const result = detectGitOperation(
"gh pr ready 42",
"✓ Converted pull request owner/repo#42 to \"Ready for review\""
);
expect(result.pr).toBeDefined();
expect(result.pr!.number).toBe(42);
expect(result.pr!.action).toBe("ready");
});
test("handles empty command string", () => {
const result = detectGitOperation("", "some output");
expect(result.commit).toBeUndefined();
expect(result.push).toBeUndefined();
expect(result.branch).toBeUndefined();
expect(result.pr).toBeUndefined();
});
test("handles empty output string", () => {
const result = detectGitOperation("git commit -m 'msg'", "");
expect(result.commit).toBeUndefined();
});
test("handles malformed git commit output", () => {
const result = detectGitOperation(
"git commit -m 'msg'",
"error: something went wrong"
);
expect(result.commit).toBeUndefined();
});
});

View File

@@ -65,6 +65,18 @@ describe("permissionModeFromString", () => {
expect(permissionModeFromString("unknown")).toBe("default");
expect(permissionModeFromString("")).toBe("default");
});
test("is case sensitive — uppercase returns default", () => {
expect(permissionModeFromString("PLAN")).toBe("default");
expect(permissionModeFromString("Default")).toBe("default");
expect(permissionModeFromString("PLAN")).toBe("default");
});
test("returns mode for all known external modes", () => {
for (const mode of EXTERNAL_PERMISSION_MODES) {
expect(permissionModeFromString(mode)).toBe(mode);
}
});
});
// ─── permissionModeTitle ───────────────────────────────────────────────
@@ -210,5 +222,10 @@ describe("isExternalPermissionMode", () => {
expect(isExternalPermissionMode("plan")).toBe(true);
expect(isExternalPermissionMode("dontAsk")).toBe(true);
});
test("returns true for acceptEdits and bypassPermissions", () => {
expect(isExternalPermissionMode("acceptEdits")).toBe(true);
expect(isExternalPermissionMode("bypassPermissions")).toBe(true);
});
});
});