Show "exec" todos in the list of rebase todos

Unfortunately it isn't possible to delete them. This would often be useful, but
our todo rewriting mechanisms rely on being able to find todos by some
identifier (hash for pick, ref for update-ref), and exec todos don't have a
unique identifier.
This commit is contained in:
Stefan Haller
2024-06-12 11:17:39 +02:00
parent 906d21f3ce
commit 899e25b208
5 changed files with 65 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
package interactive_rebase
import (
"github.com/jesseduffield/lazygit/pkg/config"
. "github.com/jesseduffield/lazygit/pkg/integration/components"
)
var ShowExecTodos = NewIntegrationTest(NewIntegrationTestArgs{
Description: "Show exec todos in the rebase todo list",
ExtraCmdArgs: []string{},
Skip: false,
SetupConfig: func(cfg *config.AppConfig) {
cfg.UserConfig.CustomCommands = []config.CustomCommand{
{
Key: "X",
Context: "commits",
Command: "git -c core.editor=: rebase -i -x false HEAD^^",
},
}
},
SetupRepo: func(shell *Shell) {
shell.
NewBranch("branch1").
CreateNCommits(3)
},
Run: func(t *TestDriver, keys config.KeybindingConfig) {
t.Views().Commits().
Focus().
Press("X").
Tap(func() {
t.ExpectPopup().Alert().Title(Equals("Error")).Content(Contains("Rebasing (2/4)Executing: false")).Confirm()
}).
Lines(
Contains("exec").Contains("false"),
Contains("pick").Contains("CI commit 03"),
Contains("CI ◯ <-- YOU ARE HERE --- commit 02"),
Contains("CI ◯ commit 01"),
).
Tap(func() {
t.Common().ContinueRebase()
t.ExpectPopup().Alert().Title(Equals("Error")).Content(Contains("Rebasing (4/4)Executing: false")).Confirm()
}).
Lines(
Contains("CI ◯ <-- YOU ARE HERE --- commit 03"),
Contains("CI ◯ commit 02"),
Contains("CI ◯ commit 01"),
).
Tap(func() {
t.Common().ContinueRebase()
}).
Lines(
Contains("CI ◯ commit 03"),
Contains("CI ◯ commit 02"),
Contains("CI ◯ commit 01"),
)
},
})

View File

@@ -209,6 +209,7 @@ var tests = []*components.IntegrationTest{
interactive_rebase.RewordLastCommit,
interactive_rebase.RewordYouAreHereCommit,
interactive_rebase.RewordYouAreHereCommitWithEditor,
interactive_rebase.ShowExecTodos,
interactive_rebase.SquashDownFirstCommit,
interactive_rebase.SquashDownSecondCommit,
interactive_rebase.SquashFixupsAbove,