mirror of
https://github.com/vee1e/gittuf.git
synced 2026-09-04 11:47:09 +00:00
This PR adds focused tests for error paths and edge cases across pkg/gitinterface, raising coverage from 69.4% to 76.2%. Files changed: - references_test.go: TestAbsoluteReference with branch/tag/custom/ref lookups - tag_test.go: TestEnsureIsTag, error paths for GetTagTarget and verifyTagSignature - commit_test.go: TestEnsureIsCommit, error paths for commit inspection helpers - object_test.go: Error paths for GetObjectType and GetObjectSize - blob_test.go: Error path for ReadBlob with non-blob object - status_test.go: Tests for Status errors and StatusCode helpers - sync_test.go: Tests for WithFetchDepth, CreateRemote, push/fetch errors - config_test.go: Error path for SetGitConfig - utils_test.go: TestResetDueToError Closes #1244 Signed-off-by: dawgdevv <nraj02415@gmail.com>
82 lines
2.1 KiB
Go
82 lines
2.1 KiB
Go
// Copyright The gittuf Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package gitinterface
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestGetGitConfig(t *testing.T) {
|
|
tmpDir := t.TempDir()
|
|
repo := CreateTestGitRepository(t, tmpDir, false)
|
|
|
|
// CreateTestGitRepository sets our test config
|
|
config, err := repo.GetGitConfig()
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, testName, config["user.name"])
|
|
assert.Equal(t, testEmail, config["user.email"])
|
|
}
|
|
|
|
func TestSetGitConfig(t *testing.T) {
|
|
t.Run("basic sets", func(t *testing.T) {
|
|
const name = "John Doe"
|
|
const email = "john.doe@example.com"
|
|
|
|
tmpDir := t.TempDir()
|
|
repo := CreateTestGitRepository(t, tmpDir, false)
|
|
|
|
err := repo.SetGitConfig("user.name", name)
|
|
require.NoError(t, err)
|
|
err = repo.SetGitConfig("user.email", email)
|
|
require.NoError(t, err)
|
|
|
|
config, err := repo.GetGitConfig()
|
|
require.NoError(t, err)
|
|
assert.Equal(t, name, config["user.name"])
|
|
assert.Equal(t, email, config["user.email"])
|
|
})
|
|
t.Run("empty set", func(t *testing.T) {
|
|
tmpDir := t.TempDir()
|
|
repo := CreateTestGitRepository(t, tmpDir, false)
|
|
|
|
err := repo.SetGitConfig("user.name", "")
|
|
require.NoError(t, err)
|
|
err = repo.SetGitConfig("user.email", "")
|
|
require.NoError(t, err)
|
|
|
|
config, err := repo.GetGitConfig()
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "", config["user.name"])
|
|
assert.Equal(t, "", config["user.email"])
|
|
})
|
|
t.Run("gpg.format special case", func(t *testing.T) {
|
|
tmpDir := t.TempDir()
|
|
repo := CreateTestGitRepository(t, tmpDir, false)
|
|
|
|
err := repo.SetGitConfig("gpg.format", "gpg")
|
|
require.NoError(t, err)
|
|
|
|
config, err := repo.GetGitConfig()
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "gpg", config["gpg.format"])
|
|
|
|
err = repo.SetGitConfig("gpg.format", "")
|
|
require.NoError(t, err)
|
|
|
|
config, err = repo.GetGitConfig()
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "", config["gpg.format"])
|
|
})
|
|
|
|
t.Run("invalid key", func(t *testing.T) {
|
|
tmpDir := t.TempDir()
|
|
repo := CreateTestGitRepository(t, tmpDir, false)
|
|
|
|
err := repo.SetGitConfig("", "value")
|
|
assert.ErrorContains(t, err, "unable to set")
|
|
})
|
|
}
|