diff --git a/pkg/commands/git_test.go b/pkg/commands/git_test.go index de9d2f996..3c90cc49a 100644 --- a/pkg/commands/git_test.go +++ b/pkg/commands/git_test.go @@ -5,6 +5,7 @@ import ( "io/ioutil" "os" "os/exec" + "regexp" "testing" "time" @@ -2101,6 +2102,37 @@ func TestGitCommandCreateFixupCommit(t *testing.T) { } } +// TestGitCommandSkipEditorCommand confirms that SkipEditorCommand injects +// environment variables that suppress an interactive editor +func TestGitCommandSkipEditorCommand(t *testing.T) { + cmd := NewDummyGitCommand() + + cmd.OSCommand.SetBeforeExecuteCmd(func(cmd *exec.Cmd) { + test.AssertContainsMatch( + t, + cmd.Env, + regexp.MustCompile("^VISUAL="), + "expected VISUAL to be set for a non-interactive external command", + ) + + test.AssertContainsMatch( + t, + cmd.Env, + regexp.MustCompile("^EDITOR="), + "expected EDITOR to be set for a non-interactive external command", + ) + + test.AssertContainsMatch( + t, + cmd.Env, + regexp.MustCompile("^LAZYGIT_CLIENT_COMMAND=EXIT_IMMEDIATELY$"), + "expected LAZYGIT_CLIENT_COMMAND to be set for a non-interactive external command", + ) + }) + + cmd.RunSkipEditorCommand("true") +} + func TestFindDotGitDir(t *testing.T) { type scenario struct { testName string