aboutsummaryrefslogtreecommitdiff
path: root/repository/refs_test.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-04 08:26:56 +0800
committerGravatar Runxi Yu2026-03-04 08:59:53 +0800
commitab7501be34032fb9e5c48726a68ae90a917af9eb (patch)
tree20d005647569befea8133e953c3270e8fd2a2a5b /repository/refs_test.go
parent*: gofumpt (diff)
signatureNo signature
*: Lint
Diffstat (limited to 'repository/refs_test.go')
-rw-r--r--repository/refs_test.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/repository/refs_test.go b/repository/refs_test.go
index d0cb216b..68f01898 100644
--- a/repository/refs_test.go
+++ b/repository/refs_test.go
@@ -30,22 +30,26 @@ func TestRefConvenienceMethods(t *testing.T) {
if err != nil {
t.Fatalf("os.OpenRoot: %v", err)
}
+
defer func() { _ = root.Close() }()
repo, err := repository.Open(root)
if err != nil {
t.Fatalf("repository.Open: %v", err)
}
+
defer func() { _ = repo.Close() }()
resolved, err := repo.ResolveRef("HEAD")
if err != nil {
t.Fatalf("ResolveRef(HEAD): %v", err)
}
+
sym, ok := resolved.(ref.Symbolic)
if !ok {
t.Fatalf("ResolveRef(HEAD) type = %T, want ref.Symbolic", resolved)
}
+
if sym.Target != "refs/heads/main" {
t.Fatalf("ResolveRef(HEAD) target = %q, want %q", sym.Target, "refs/heads/main")
}
@@ -54,6 +58,7 @@ func TestRefConvenienceMethods(t *testing.T) {
if err != nil {
t.Fatalf("ResolveRefFully(HEAD): %v", err)
}
+
if fully.ID != commitID {
t.Fatalf("ResolveRefFully(HEAD) id = %s, want %s", fully.ID, commitID)
}
@@ -62,6 +67,7 @@ func TestRefConvenienceMethods(t *testing.T) {
if err != nil {
t.Fatalf("ListRefs: %v", err)
}
+
if len(refs) < 2 {
t.Fatalf("ListRefs returned %d refs, want >= 2", len(refs))
}
@@ -70,6 +76,7 @@ func TestRefConvenienceMethods(t *testing.T) {
if err != nil {
t.Fatalf("ShortenRef: %v", err)
}
+
if short != "heads/main" && short != "main" {
t.Fatalf("ShortenRef = %q, want %q or %q", short, "heads/main", "main")
}
@@ -90,18 +97,21 @@ func TestResolveRefErrorSurface(t *testing.T) {
if err != nil {
t.Fatalf("os.OpenRoot: %v", err)
}
+
defer func() { _ = root.Close() }()
repo, err := repository.Open(root)
if err != nil {
t.Fatalf("repository.Open: %v", err)
}
+
defer func() { _ = repo.Close() }()
_, err = repo.ResolveRef("refs/heads/does-not-exist")
if err == nil {
t.Fatalf("ResolveRef missing: expected error")
}
+
if !strings.Contains(err.Error(), "not found") {
t.Fatalf("ResolveRef missing error = %v, want not found detail", err)
}
@@ -131,18 +141,21 @@ func TestListRefsLooseOverridesPacked(t *testing.T) {
if err != nil {
t.Fatalf("os.OpenRoot: %v", err)
}
+
defer func() { _ = root.Close() }()
repo, err := repository.Open(root)
if err != nil {
t.Fatalf("repository.Open: %v", err)
}
+
defer func() { _ = repo.Close() }()
mainRef, err := repo.ResolveRefFully("refs/heads/main")
if err != nil {
t.Fatalf("ResolveRefFully(main): %v", err)
}
+
if mainRef.ID != commit2 {
t.Fatalf("ResolveRefFully(main) id = %s, want %s", mainRef.ID, commit2)
}
@@ -151,12 +164,14 @@ func TestListRefsLooseOverridesPacked(t *testing.T) {
if err != nil {
t.Fatalf("ListRefs(refs/heads/*): %v", err)
}
+
byName := make(map[string]ref.Ref, len(refs))
for _, entry := range refs {
name := entry.Name()
if _, exists := byName[name]; exists {
t.Fatalf("duplicate ref %q in ListRefs output", name)
}
+
byName[name] = entry
}
@@ -164,10 +179,12 @@ func TestListRefsLooseOverridesPacked(t *testing.T) {
if !ok {
t.Fatalf("missing refs/heads/main in ListRefs output")
}
+
mainDetached, ok := main.(ref.Detached)
if !ok {
t.Fatalf("refs/heads/main type = %T, want ref.Detached", main)
}
+
if mainDetached.ID != commit2 {
t.Fatalf("refs/heads/main id = %s, want %s", mainDetached.ID, commit2)
}
@@ -176,10 +193,12 @@ func TestListRefsLooseOverridesPacked(t *testing.T) {
if !ok {
t.Fatalf("missing refs/heads/feature in ListRefs output")
}
+
featureDetached, ok := feature.(ref.Detached)
if !ok {
t.Fatalf("refs/heads/feature type = %T, want ref.Detached", feature)
}
+
if featureDetached.ID != commit1 {
t.Fatalf("refs/heads/feature id = %s, want %s", featureDetached.ID, commit1)
}