diff --git a/main.go b/main.go index 25e55d364..890b69a7f 100644 --- a/main.go +++ b/main.go @@ -43,7 +43,7 @@ func main() { panic(err) } - app, err := app.NewApp(appConfig) + app, err := app.Setup(appConfig) if err != nil { app.Log.Error(err.Error()) panic(err) diff --git a/pkg/app/app.go b/pkg/app/app.go index fa2415fc3..b03ec5b42 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -65,8 +65,8 @@ func newLogger(config config.AppConfigurer) *logrus.Entry { }) } -// NewApp retruns a new applications -func NewApp(config config.AppConfigurer) (*App, error) { +// Setup bootstrap a new application +func Setup(config config.AppConfigurer) (*App, error) { app := &App{ closers: []io.Closer{}, Config: config, diff --git a/pkg/commands/git_test.go b/pkg/commands/git_test.go index ebf4fd43d..64d3828ea 100644 --- a/pkg/commands/git_test.go +++ b/pkg/commands/git_test.go @@ -214,6 +214,48 @@ func TestSetupRepositoryAndWorktree(t *testing.T) { } } +func TestNewGitCommand(t *testing.T) { + actual, err := os.Getwd() + assert.NoError(t, err) + + defer func() { + assert.NoError(t, os.Chdir(actual)) + }() + + type scenario struct { + setup func() + test func(*GitCommand, error) + } + + scenarios := []scenario{ + { + func() { + assert.NoError(t, os.Chdir("/tmp")) + }, + func(gitCmd *GitCommand, err error) { + assert.Error(t, err) + assert.Equal(t, ErrGitRepositoryInvalid, err) + }, + }, + { + func() { + assert.NoError(t, os.RemoveAll("/tmp/lazygit-test")) + _, err := gogit.PlainInit("/tmp/lazygit-test", false) + assert.NoError(t, err) + assert.NoError(t, os.Chdir("/tmp/lazygit-test")) + }, + func(gitCmd *GitCommand, err error) { + assert.NoError(t, err) + }, + }, + } + + for _, s := range scenarios { + s.setup() + s.test(NewGitCommand(newDummyLog(), newDummyOSCommand(), i18n.NewLocalizer(newDummyLog()))) + } +} + func TestGitCommandGetStashEntries(t *testing.T) { type scenario struct { command func(string, ...string) *exec.Cmd