mirror of
https://github.com/jesseduffield/lazygit.git
synced 2024-11-28 09:08:41 +02:00
use RunCommand
This commit is contained in:
parent
8c67578063
commit
df3e7abd68
@ -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)
|
||||
|
@ -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())
|
||||
},
|
||||
},
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user