mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-04-23 12:18:51 +02:00
To support this, we turn the confirmation prompt of the "Create fixup commit" command into a menu; creating a fixup commit is the first entry, so that "shift-F, enter" behaves the same as before. But there are additional entries for creating "amend!" commits, either with or without file changes. These make it easy to reword commit messages of existing commits.
57 lines
1.5 KiB
Go
57 lines
1.5 KiB
Go
package interactive_rebase
|
|
|
|
import (
|
|
"github.com/jesseduffield/lazygit/pkg/config"
|
|
. "github.com/jesseduffield/lazygit/pkg/integration/components"
|
|
)
|
|
|
|
var SquashFixupsAbove = NewIntegrationTest(NewIntegrationTestArgs{
|
|
Description: "Squashes all fixups above a commit and checks that the selected line stays correct.",
|
|
ExtraCmdArgs: []string{},
|
|
Skip: false,
|
|
SetupConfig: func(config *config.AppConfig) {},
|
|
SetupRepo: func(shell *Shell) {
|
|
shell.
|
|
CreateNCommits(3).
|
|
CreateFileAndAdd("fixup-file", "fixup content")
|
|
},
|
|
Run: func(t *TestDriver, keys config.KeybindingConfig) {
|
|
t.Views().Commits().
|
|
Focus().
|
|
Lines(
|
|
Contains("commit 03"),
|
|
Contains("commit 02"),
|
|
Contains("commit 01"),
|
|
).
|
|
NavigateToLine(Contains("commit 02")).
|
|
Press(keys.Commits.CreateFixupCommit).
|
|
Tap(func() {
|
|
t.ExpectPopup().Menu().
|
|
Title(Equals("Create fixup commit")).
|
|
Select(Contains("fixup! commit")).
|
|
Confirm()
|
|
}).
|
|
Lines(
|
|
Contains("fixup! commit 02"),
|
|
Contains("commit 03"),
|
|
Contains("commit 02").IsSelected(),
|
|
Contains("commit 01"),
|
|
).
|
|
Press(keys.Commits.SquashAboveCommits).
|
|
Tap(func() {
|
|
t.ExpectPopup().Menu().
|
|
Title(Equals("Apply fixup commits")).
|
|
Select(Contains("Above the selected commit")).
|
|
Confirm()
|
|
}).
|
|
Lines(
|
|
Contains("commit 03"),
|
|
Contains("commit 02").IsSelected(),
|
|
Contains("commit 01"),
|
|
)
|
|
|
|
t.Views().Main().
|
|
Content(Contains("fixup content"))
|
|
},
|
|
})
|