package index import ( "os" "os/exec" "path/filepath" "testing" ) func TestGetGitCommit(t *testing.T) { // 创建临时 git 仓库 tmpDir := t.TempDir() exec.Command("git", "-C", tmpDir, "init").Run() exec.Command("git", "-C", tmpDir, "config", "user.email", "test@test.com").Run() exec.Command("git", "-C", tmpDir, "config", "user.name", "test").Run() os.WriteFile(filepath.Join(tmpDir, "test.md"), []byte("test"), 0644) exec.Command("git", "-C", tmpDir, "add", ".").Run() exec.Command("git", "-C", tmpDir, "commit", "-m", "init").Run() commit, err := GetGitCommit(tmpDir) if err != nil { t.Fatalf("GetGitCommit failed: %v", err) } if len(commit) != 40 { t.Errorf("commit length = %d, want 40", len(commit)) } } func TestGetGitCommitNotGit(t *testing.T) { tmpDir := t.TempDir() _, err := GetGitCommit(tmpDir) if err == nil { t.Error("expected error for non-git directory") } }