diff options
| author | 2026-03-04 08:26:56 +0800 | |
|---|---|---|
| committer | 2026-03-04 08:59:53 +0800 | |
| commit | ab7501be34032fb9e5c48726a68ae90a917af9eb (patch) | |
| tree | 20d005647569befea8133e953c3270e8fd2a2a5b /repository/refs_test.go | |
| parent | *: gofumpt (diff) | |
| signature | No signature | |
*: Lint
Diffstat (limited to 'repository/refs_test.go')
| -rw-r--r-- | repository/refs_test.go | 19 |
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) } |
