mirror of
https://github.com/vee1e/gittuf.git
synced 2026-09-01 18:27:06 +00:00
pkg/gitinterface: Add and refactor tests for coverage
This commit adds tests for uncovered error paths and edge cases in pkg/gitinterface, and refactors existing tests for clarity: - Add error path tests for CheckAndSetReference, SetReference, DeleteReference, RefSpec, CanSign, VerifySignature, TagUsingSpecificKey, GetAllFilesInTree, EnsureIsCommit, GetTagTarget, ensureIsTag, and other helpers - Inline error-case test functions into parent tests using t.Run subtests for better organization - Extract inline byte slices into named variables for readability - Simplify temp directory usage where subdirectories are unnecessary - Remove redundant parser-level error tests - Format files with gofmt Signed-off-by: dawgdevv <nraj02415@gmail.com>
This commit is contained in:
parent
b55ba336ce
commit
3e835940ee
7 changed files with 235 additions and 54 deletions
|
|
@ -129,6 +129,16 @@ func TestGetPathIDInTree(t *testing.T) {
|
|||
assert.ErrorIs(t, err, ErrTreeDoesNotHavePath)
|
||||
assert.Nil(t, itemID)
|
||||
})
|
||||
|
||||
t.Run("blob id", func(t *testing.T) {
|
||||
_, err := repo.GetPathIDInTree("a", blobAID)
|
||||
assert.ErrorContains(t, err, "unable to enumerate items in tree")
|
||||
})
|
||||
|
||||
t.Run("non-existent id", func(t *testing.T) {
|
||||
_, err := repo.GetPathIDInTree("a", ZeroHash)
|
||||
assert.ErrorContains(t, err, "unable to enumerate items in tree")
|
||||
})
|
||||
}
|
||||
|
||||
func TestGetTreeItems(t *testing.T) {
|
||||
|
|
@ -237,6 +247,16 @@ func TestGetTreeItems(t *testing.T) {
|
|||
assert.Nil(t, err)
|
||||
assert.Equal(t, expectedTreeItems, treeItems)
|
||||
})
|
||||
|
||||
t.Run("blob id", func(t *testing.T) {
|
||||
_, err := repo.GetTreeItems(blobAID)
|
||||
assert.ErrorContains(t, err, "unable to enumerate items in tree")
|
||||
})
|
||||
|
||||
t.Run("non-existent id", func(t *testing.T) {
|
||||
_, err := repo.GetTreeItems(ZeroHash)
|
||||
assert.ErrorContains(t, err, "unable to enumerate items in tree")
|
||||
})
|
||||
}
|
||||
|
||||
func TestGetMergeTree(t *testing.T) {
|
||||
|
|
@ -443,6 +463,43 @@ func TestGetMergeTree(t *testing.T) {
|
|||
assert.Nil(t, err)
|
||||
assert.Equal(t, treeID, mergeTreeID)
|
||||
})
|
||||
|
||||
t.Run("non-commit target", func(t *testing.T) {
|
||||
tmpDir := t.TempDir()
|
||||
repo := CreateTestGitRepository(t, tmpDir, false)
|
||||
|
||||
blobID, err := repo.WriteBlob([]byte("a"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = repo.GetMergeTree(ZeroHash, blobID)
|
||||
assert.ErrorContains(t, err, "is not a commit object")
|
||||
})
|
||||
|
||||
t.Run("non-commit base", func(t *testing.T) {
|
||||
tmpDir := t.TempDir()
|
||||
repo := CreateTestGitRepository(t, tmpDir, false)
|
||||
treeBuilder := NewTreeBuilder(repo)
|
||||
|
||||
blobID, err := repo.WriteBlob([]byte("a"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
emptyTreeID, err := treeBuilder.WriteTreeFromEntries(nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
commitID, err := repo.Commit(emptyTreeID, "refs/heads/main", "Initial commit\n", false)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = repo.GetMergeTree(blobID, commitID)
|
||||
assert.ErrorContains(t, err, "is not a commit object")
|
||||
})
|
||||
}
|
||||
|
||||
func TestCreateSubtreeFromUpstreamRepository(t *testing.T) {
|
||||
|
|
@ -1121,4 +1178,25 @@ func TestEnsureIsTree(t *testing.T) {
|
|||
|
||||
err = repo.ensureIsTree(blobID)
|
||||
assert.NotNil(t, err)
|
||||
|
||||
err = repo.ensureIsTree(ZeroHash)
|
||||
assert.ErrorContains(t, err, "unable to inspect if object is tree")
|
||||
}
|
||||
|
||||
func TestGetAllFilesInTree(t *testing.T) {
|
||||
t.Run("error cases", func(t *testing.T) {
|
||||
tmpDir := t.TempDir()
|
||||
repo := CreateTestGitRepository(t, tmpDir, false)
|
||||
|
||||
blobID, err := repo.WriteBlob([]byte("a"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = repo.GetAllFilesInTree(blobID)
|
||||
assert.ErrorContains(t, err, "unable to enumerate all files in tree")
|
||||
|
||||
_, err = repo.GetAllFilesInTree(ZeroHash)
|
||||
assert.ErrorContains(t, err, "unable to enumerate all files in tree")
|
||||
})
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue