54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
package gitcmd
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
"os/exec"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestEmptyRepoReturnsEmpty(t *testing.T) {
|
|
dir := t.TempDir()
|
|
repoPath := filepath.Join(dir, "empty.git")
|
|
if err := os.MkdirAll(repoPath, 0o755); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if out, err := exec.Command("git", "init", "--bare", repoPath).CombinedOutput(); err != nil {
|
|
t.Fatalf("git init --bare: %v\n%s", err, out)
|
|
}
|
|
|
|
r, err := OpenRepository(context.Background(), repoPath)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if empty, err := r.IsEmpty(); err != nil || !empty {
|
|
t.Fatalf("IsEmpty() = (%v, %v), want (true, nil)", empty, err)
|
|
}
|
|
|
|
commits, err := r.ListCommits("HEAD", 20)
|
|
if err != nil {
|
|
t.Fatalf("ListCommits on empty repo: %v", err)
|
|
}
|
|
if len(commits) != 0 {
|
|
t.Fatalf("ListCommits = %d items, want 0", len(commits))
|
|
}
|
|
|
|
tree, err := r.GetTree("HEAD", "")
|
|
if err != nil {
|
|
t.Fatalf("GetTree on empty repo: %v", err)
|
|
}
|
|
if len(tree.Entries) != 0 {
|
|
t.Fatalf("GetTree = %d entries, want 0", len(tree.Entries))
|
|
}
|
|
|
|
contribs, err := r.GetContributors("HEAD")
|
|
if err != nil {
|
|
t.Fatalf("GetContributors on empty repo: %v", err)
|
|
}
|
|
if len(contribs) != 0 {
|
|
t.Fatalf("GetContributors = %d items, want 0", len(contribs))
|
|
}
|
|
}
|