gittuf/pkg/gitinterface/config_test.go
dawgdevv 8374150f3f test: improve pkg/gitinterface coverage from 69.4% to 76.2%
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>
2026-04-25 02:44:19 +05:30

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")
})
}