summaryrefslogtreecommitdiffstats
path: root/pkg/commands/rebasing_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/commands/rebasing_test.go')
-rw-r--r--pkg/commands/rebasing_test.go105
1 files changed, 43 insertions, 62 deletions
diff --git a/pkg/commands/rebasing_test.go b/pkg/commands/rebasing_test.go
index af786f515..3091da9ee 100644
--- a/pkg/commands/rebasing_test.go
+++ b/pkg/commands/rebasing_test.go
@@ -1,95 +1,76 @@
package commands
import (
- "os/exec"
+ "regexp"
"testing"
- "github.com/jesseduffield/lazygit/pkg/test"
+ "github.com/go-errors/errors"
+ "github.com/jesseduffield/lazygit/pkg/commands/oscommands"
+ "github.com/jesseduffield/lazygit/pkg/utils"
"github.com/stretchr/testify/assert"
)
-// TestGitCommandRebaseBranch is a function.
func TestGitCommandRebaseBranch(t *testing.T) {
type scenario struct {
testName string
arg string
- command func(string, ...string) *exec.Cmd
+ runner *oscommands.FakeCmdObjRunner
test func(error)
}
scenarios := []scenario{
{
- "successful rebase",
- "master",
- test.CreateMockCommand(t, []*test.CommandSwapper{
- {
- Expect: "git rebase --interactive --autostash --keep-empty master",
- Replace: "echo",
- },
- }),
- func(err error) {
+ testName: "successful rebase",
+ arg: "master",
+ runner: oscommands.NewFakeRunner(t).
+ Expect(`git rebase --interactive --autostash --keep-empty master`, "", nil),
+ test: func(err error) {
assert.NoError(t, err)
},
},
{
- "unsuccessful rebase",
- "master",
- test.CreateMockCommand(t, []*test.CommandSwapper{
- {
- Expect: "git rebase --interactive --autostash --keep-empty master",
- Replace: "test",
- },
- }),
- func(err error) {
+ testName: "unsuccessful rebase",
+ arg: "master",
+ runner: oscommands.NewFakeRunner(t).
+ Expect(`git rebase --interactive --autostash --keep-empty master`, "", errors.New("error")),
+ test: func(err error) {
assert.Error(t, err)
},
},
}
- gitCmd := NewDummyGitCommand()
-
for _, s := range scenarios {
t.Run(s.testName, func(t *testing.T) {
- gitCmd.OSCommand.Command = s.command
+ gitCmd := NewDummyGitCommandWithRunner(s.runner)
s.test(gitCmd.RebaseBranch(s.arg))
})
}
}
-// // TestGitCommandSkipEditorCommand confirms that SkipEditorCommand injects
-// // environment variables that suppress an interactive editor
-// func TestGitCommandSkipEditorCommand(t *testing.T) {
-// cmd := NewDummyGitCommand()
-
-// cmd.OSCommand.SetBeforeExecuteCmd(func(cmdObj oscommands.ICmdObj) {
-// test.AssertContainsMatch(
-// t,
-// cmdObj.GetEnvVars(),
-// regexp.MustCompile("^VISUAL="),
-// "expected VISUAL to be set for a non-interactive external command",
-// )
-
-// test.AssertContainsMatch(
-// t,
-// cmdObj.GetEnvVars(),
-// regexp.MustCompile("^EDITOR="),
-// "expected EDITOR to be set for a non-interactive external command",
-// )
-
-// test.AssertContainsMatch(
-// t,
-// cmdObj.GetEnvVars(),
-// regexp.MustCompile("^GIT_EDITOR="),
-// "expected GIT_EDITOR to be set for a non-interactive external command",
-// )
-
-// test.AssertContainsMatch(
-// t,
-// cmdObj.GetEnvVars(),
-// regexp.MustCompile("^LAZYGIT_CLIENT_COMMAND=EXIT_IMMEDIATELY$"),
-// "expected LAZYGIT_CLIENT_COMMAND to be set for a non-interactive external command",
-// )
-// })
-
-// _ = cmd.runSkipEditorCommand("true")
-// }
+// TestGitCommandSkipEditorCommand confirms that SkipEditorCommand injects
+// environment variables that suppress an interactive editor
+func TestGitCommandSkipEditorCommand(t *testing.T) {
+ commandStr := "git blah"
+ runner := oscommands.NewFakeRunner(t).ExpectFunc(func(cmdObj oscommands.ICmdObj) (string, error) {
+ assert.Equal(t, commandStr, cmdObj.ToString())
+ envVars := cmdObj.GetEnvVars()
+ for _, regexStr := range []string{
+ `^VISUAL=.*$`,
+ `^EDITOR=.*$`,
+ `^GIT_EDITOR=.*$`,
+ "^LAZYGIT_CLIENT_COMMAND=EXIT_IMMEDIATELY$",
+ } {
+ foundMatch := utils.IncludesStringFunc(envVars, func(envVar string) bool {
+ return regexp.MustCompile(regexStr).MatchString(envVar)
+ })
+ if !foundMatch {
+ t.Errorf("expected environment variable %s to be set", regexStr)
+ }
+ }
+ return "", nil
+ })
+ gitCmd := NewDummyGitCommandWithRunner(runner)
+ err := gitCmd.runSkipEditorCommand(commandStr)
+ assert.NoError(t, err)
+ runner.CheckForMissingCalls()
+}