From c6cb90e8cad161c3636e7923bc34eae229955aea Mon Sep 17 00:00:00 2001 From: Chris Taylor Date: Sat, 1 Feb 2020 17:10:31 -0500 Subject: verify that VISUAL,EDITOR,LGCC envvars are set for non-interactive commands --- pkg/commands/git_test.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) 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 -- cgit v1.2.3