1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2024-11-28 09:08:41 +02:00

use RunCommand

This commit is contained in:
Anthony HAMON 2018-09-04 06:16:19 +02:00
parent 8c67578063
commit df3e7abd68
2 changed files with 12 additions and 20 deletions

View File

@ -15,16 +15,8 @@ import (
gogit "gopkg.in/src-d/go-git.v4"
)
// ErrGitRepositoryInvalid is emitted when we run a git command in a folder
// to check if we have a valid git repository and we get an error instead
var ErrGitRepositoryInvalid = errors.New("can't find a valid git repository in current directory")
func verifyInGitRepo(runCmdWithOutput func(string) (string, error)) error {
if _, err := runCmdWithOutput("git status"); err != nil {
return ErrGitRepositoryInvalid
}
return nil
func verifyInGitRepo(runCmd func(string) error) error {
return runCmd("git status")
}
func navigateToRepoRootDirectory(stat func(string) (os.FileInfo, error), chdir func(string) error) error {
@ -81,7 +73,7 @@ func NewGitCommand(log *logrus.Entry, osCommand *OSCommand, tr *i18n.Localizer)
fs := []func() error{
func() error {
return verifyInGitRepo(osCommand.RunCommandWithOutput)
return verifyInGitRepo(osCommand.RunCommand)
},
func() error {
return navigateToRepoRootDirectory(os.Stat, os.Chdir)

View File

@ -64,32 +64,32 @@ func newDummyGitCommand() *GitCommand {
func TestVerifyInGitRepo(t *testing.T) {
type scenario struct {
runCmdWithOutput func(string) (string, error)
test func(error)
runCmd func(string) error
test func(error)
}
scenarios := []scenario{
{
func(string) (string, error) {
return "", nil
func(string) error {
return nil
},
func(err error) {
assert.NoError(t, err)
},
},
{
func(string) (string, error) {
return "", ErrGitRepositoryInvalid
func(string) error {
return fmt.Errorf("fatal: Not a git repository (or any of the parent directories): .git")
},
func(err error) {
assert.Error(t, err)
assert.Equal(t, ErrGitRepositoryInvalid, err)
assert.Regexp(t, "fatal: .ot a git repository \\(or any of the parent directories\\): \\.git", err.Error())
},
},
}
for _, s := range scenarios {
s.test(verifyInGitRepo(s.runCmdWithOutput))
s.test(verifyInGitRepo(s.runCmd))
}
}
@ -234,7 +234,7 @@ func TestNewGitCommand(t *testing.T) {
},
func(gitCmd *GitCommand, err error) {
assert.Error(t, err)
assert.Equal(t, ErrGitRepositoryInvalid, err)
assert.Regexp(t, "fatal: .ot a git repository \\(or any of the parent directories\\): \\.git", err.Error())
},
},
{