mirror of
https://github.com/jesseduffield/lazygit.git
synced 2026-09-15 01:56:24 -04:00
I've optimised for muscle memory backwards compatibility here: - Outside interactive rebase: press 'f' then instead of a confirmation panel, a menu appears where you can choose to keep the selected commit's message - Inside interactive rebase: press 'f' then press 'c' to see the menu for keeping the message, where if you press 'c' again it will retain the current message. so 'fcc' is the chord to press. We're also now showing the -C flag (which is what enables the behaviour) against the todo. I've picked the 'c' keybinding because 'C' was taken and it corresponds to the flag. Previously that showed a warning about a change in keybinding for cherry picking but it's been ages since we've made that change so I'm happy to retire it.
155 lines
4 KiB
Go
155 lines
4 KiB
Go
package interactive_rebase
|
|
|
|
import (
|
|
"github.com/jesseduffield/lazygit/pkg/config"
|
|
. "github.com/jesseduffield/lazygit/pkg/integration/components"
|
|
)
|
|
|
|
var OutsideRebaseRangeSelect = NewIntegrationTest(NewIntegrationTestArgs{
|
|
Description: "Do various things with range selection in the commits view when outside rebase",
|
|
ExtraCmdArgs: []string{},
|
|
Skip: false,
|
|
SetupConfig: func(config *config.AppConfig) {},
|
|
SetupRepo: func(shell *Shell) {
|
|
shell.
|
|
CreateNCommits(10)
|
|
},
|
|
Run: func(t *TestDriver, keys config.KeybindingConfig) {
|
|
t.Views().Commits().
|
|
Focus().
|
|
TopLines(
|
|
Contains("commit 10").IsSelected(),
|
|
).
|
|
Press(keys.Universal.RangeSelectDown).
|
|
TopLines(
|
|
Contains("commit 10").IsSelected(),
|
|
Contains("commit 09").IsSelected(),
|
|
Contains("commit 08"),
|
|
).
|
|
// Drop commits
|
|
Press(keys.Universal.Remove).
|
|
Tap(func() {
|
|
t.ExpectPopup().Confirmation().
|
|
Title(Equals("Drop commit")).
|
|
Content(Contains("Are you sure you want to drop the selected commit(s)?")).
|
|
Confirm()
|
|
}).
|
|
TopLines(
|
|
Contains("commit 08").IsSelected(),
|
|
Contains("commit 07"),
|
|
).
|
|
Press(keys.Universal.RangeSelectDown).
|
|
TopLines(
|
|
Contains("commit 08").IsSelected(),
|
|
Contains("commit 07").IsSelected(),
|
|
Contains("commit 06"),
|
|
).
|
|
// Squash commits
|
|
Press(keys.Commits.SquashDown).
|
|
Tap(func() {
|
|
t.ExpectPopup().Confirmation().
|
|
Title(Equals("Squash")).
|
|
Content(Contains("Are you sure you want to squash the selected commit(s) into the commit below?")).
|
|
Confirm()
|
|
}).
|
|
TopLines(
|
|
Contains("commit 06").IsSelected(),
|
|
Contains("commit 05"),
|
|
Contains("commit 04"),
|
|
).
|
|
// Verify commit messages are concatenated
|
|
Tap(func() {
|
|
t.Views().Main().
|
|
ContainsLines(
|
|
Contains("commit 06"),
|
|
AnyString(),
|
|
Contains("commit 07"),
|
|
AnyString(),
|
|
Contains("commit 08"),
|
|
)
|
|
}).
|
|
// Fixup commits
|
|
Press(keys.Universal.RangeSelectDown).
|
|
TopLines(
|
|
Contains("commit 06").IsSelected(),
|
|
Contains("commit 05").IsSelected(),
|
|
Contains("commit 04"),
|
|
).
|
|
Press(keys.Commits.MarkCommitAsFixup).
|
|
Tap(func() {
|
|
t.ExpectPopup().Menu().
|
|
Title(Equals("Fixup")).
|
|
Confirm()
|
|
}).
|
|
TopLines(
|
|
Contains("commit 04").IsSelected(),
|
|
Contains("commit 03"),
|
|
Contains("commit 02"),
|
|
).
|
|
// Verify commit messages are dropped
|
|
Tap(func() {
|
|
t.Views().Main().
|
|
Content(
|
|
Contains("commit 04").
|
|
DoesNotContain("commit 06").
|
|
DoesNotContain("commit 05"),
|
|
)
|
|
}).
|
|
Press(keys.Universal.RangeSelectDown).
|
|
TopLines(
|
|
Contains("commit 04").IsSelected(),
|
|
Contains("commit 03").IsSelected(),
|
|
Contains("commit 02"),
|
|
).
|
|
// Move commits
|
|
Press(keys.Commits.MoveDownCommit).
|
|
TopLines(
|
|
Contains("commit 02"),
|
|
Contains("commit 04").IsSelected(),
|
|
Contains("commit 03").IsSelected(),
|
|
Contains("commit 01"),
|
|
).
|
|
Press(keys.Commits.MoveDownCommit).
|
|
TopLines(
|
|
Contains("commit 02"),
|
|
Contains("commit 01"),
|
|
Contains("commit 04").IsSelected(),
|
|
Contains("commit 03").IsSelected(),
|
|
).
|
|
Press(keys.Commits.MoveDownCommit).
|
|
TopLines(
|
|
Contains("commit 02"),
|
|
Contains("commit 01"),
|
|
Contains("commit 04").IsSelected(),
|
|
Contains("commit 03").IsSelected(),
|
|
).
|
|
Tap(func() {
|
|
t.ExpectToast(Contains("Disabled: Cannot move any further"))
|
|
}).
|
|
Press(keys.Commits.MoveUpCommit).
|
|
TopLines(
|
|
Contains("commit 02"),
|
|
Contains("commit 04").IsSelected(),
|
|
Contains("commit 03").IsSelected(),
|
|
Contains("commit 01"),
|
|
).
|
|
Press(keys.Commits.MoveUpCommit).
|
|
TopLines(
|
|
Contains("commit 04").IsSelected(),
|
|
Contains("commit 03").IsSelected(),
|
|
Contains("commit 02"),
|
|
Contains("commit 01"),
|
|
).
|
|
Press(keys.Commits.MoveUpCommit).
|
|
Tap(func() {
|
|
t.ExpectToast(Contains("Disabled: Cannot move any further"))
|
|
}).
|
|
TopLines(
|
|
Contains("commit 04").IsSelected(),
|
|
Contains("commit 03").IsSelected(),
|
|
Contains("commit 02"),
|
|
Contains("commit 01"),
|
|
)
|
|
},
|
|
})
|