Retain commit message when cycling history

When cycling history, we want to make it so that upon returning to the original prompt, you get your text back.
Importantly, we don't want to use the existing preservedMessage field for that because that's only for preserving
a NEW commit message, and we don't want the history stuff of the commit reword flow to overwrite that.
This commit is contained in:
Jesse Duffield 2023-04-29 20:04:43 +10:00
parent 9d68b287db
commit a57310df24
7 changed files with 127 additions and 8 deletions

View file

@ -0,0 +1,53 @@
package commit
import (
"github.com/jesseduffield/lazygit/pkg/config"
. "github.com/jesseduffield/lazygit/pkg/integration/components"
)
var History = NewIntegrationTest(NewIntegrationTestArgs{
Description: "Cycling through commit message history in the commit message panel",
ExtraCmdArgs: "",
Skip: false,
SetupConfig: func(config *config.AppConfig) {},
SetupRepo: func(shell *Shell) {
shell.EmptyCommit("initial commit")
shell.EmptyCommit("commit 2")
shell.EmptyCommit("commit 3")
shell.CreateFile("myfile", "myfile content")
},
Run: func(t *TestDriver, keys config.KeybindingConfig) {
t.Views().Files().
IsFocused().
PressPrimaryAction(). // stage file
Press(keys.Files.CommitChanges)
t.ExpectPopup().CommitMessagePanel().
InitialText(Equals("")).
Type("my commit message").
SelectPreviousMessage().
Content(Equals("commit 3")).
SelectPreviousMessage().
Content(Equals("commit 2")).
SelectPreviousMessage().
Content(Equals("initial commit")).
SelectPreviousMessage().
Content(Equals("initial commit")). // we hit the end
SelectNextMessage().
Content(Equals("commit 2")).
SelectNextMessage().
Content(Equals("commit 3")).
SelectNextMessage().
Content(Equals("my commit message")).
SelectNextMessage().
Content(Equals("my commit message")). // we hit the beginning
Type(" with extra added").
Confirm()
t.Views().Commits().
TopLines(
Contains("my commit message with extra added").IsSelected(),
)
},
})