jesseduffield.lazygit/pkg/integration/tests/interactive_rebase/squash_down_second_commit.go
jhunhong 461e7cd53b
fix(rebase): correct parent commit selection logic when git.log.showWholeGraph=true
- Able to accurately select the parent commit now, preventing incorrect
operations on merge commits and complex histories.
- Updated method signatures to accept a parent commit index for precise
targeting.
- Improved english confirmation prompts and translations to clarify
actions affect the parent commit below.

- Fixed: squash "s", drop "d", reword "r/R", discard "d",
edit/interactive-rebase "e", fixup "f", amend "a/A, patch "Ctrl-P"
- Not yet fixed: interative-rebase "i"

fix: GetParentCommit edge cases
2026-03-10 11:40:29 +08:00

44 lines
1.2 KiB
Go

package interactive_rebase
import (
"github.com/jesseduffield/lazygit/pkg/config"
. "github.com/jesseduffield/lazygit/pkg/integration/components"
)
var SquashDownSecondCommit = NewIntegrationTest(NewIntegrationTestArgs{
Description: "Squash down the second commit into the first (initial)",
ExtraCmdArgs: []string{},
Skip: false,
SetupConfig: func(config *config.AppConfig) {},
SetupRepo: func(shell *Shell) {
shell.
CreateNCommits(3)
},
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.SquashDown).
Tap(func() {
t.ExpectPopup().Confirmation().
Title(Equals("Squash")).
Content(Equals("Are you sure you want to squash the selected commit(s) into the parent commit below?")).
Confirm()
}).
Lines(
Contains("commit 03"),
Contains("commit 01").IsSelected(),
)
t.Views().Main().
Content(Contains(" commit 01\n \n commit 02")).
Content(Contains("+file01 content")).
Content(Contains("+file02 content"))
},
})