From 0c0f95168c0bbdd096361170f02cdc886383f39b Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Sat, 10 May 2025 14:55:52 +0200 Subject: [PATCH] Regression test for renaming the last commit of a stacked branch I almost broke this during the development of this branch, so add a test to guard against that. The point here is that the stack remains intact, i.e. the renamed commit is the head of the lower branch, and thus shows the "*". --- .../reword_last_commit_of_stacked_branch.go | 55 +++++++++++++++++++ pkg/integration/tests/test_list.go | 1 + 2 files changed, 56 insertions(+) create mode 100644 pkg/integration/tests/interactive_rebase/reword_last_commit_of_stacked_branch.go diff --git a/pkg/integration/tests/interactive_rebase/reword_last_commit_of_stacked_branch.go b/pkg/integration/tests/interactive_rebase/reword_last_commit_of_stacked_branch.go new file mode 100644 index 000000000..58505d359 --- /dev/null +++ b/pkg/integration/tests/interactive_rebase/reword_last_commit_of_stacked_branch.go @@ -0,0 +1,55 @@ +package interactive_rebase + +import ( + "github.com/jesseduffield/lazygit/pkg/config" + . "github.com/jesseduffield/lazygit/pkg/integration/components" +) + +var RewordLastCommitOfStackedBranch = NewIntegrationTest(NewIntegrationTestArgs{ + Description: "Rewords the last commit of a branch in the middle of a stack", + ExtraCmdArgs: []string{}, + Skip: false, + GitVersion: AtLeast("2.38.0"), + SetupConfig: func(config *config.AppConfig) { + config.GetUserConfig().Git.MainBranches = []string{"master"} + config.GetAppState().GitLogShowGraph = "never" + }, + SetupRepo: func(shell *Shell) { + shell. + CreateNCommits(1). + NewBranch("branch1"). + CreateNCommitsStartingAt(2, 2). + NewBranch("branch2"). + CreateNCommitsStartingAt(2, 4) + + shell.SetConfig("rebase.updateRefs", "true") + }, + Run: func(t *TestDriver, keys config.KeybindingConfig) { + t.Views().Commits(). + Focus(). + Lines( + Contains("CI commit 05").IsSelected(), + Contains("CI commit 04"), + Contains("CI * commit 03"), + Contains("CI commit 02"), + Contains("CI commit 01"), + ). + NavigateToLine(Contains("commit 03")). + Press(keys.Commits.RenameCommit). + Tap(func() { + t.ExpectPopup().CommitMessagePanel(). + Title(Equals("Reword commit")). + InitialText(Equals("commit 03")). + Clear(). + Type("renamed 03"). + Confirm() + }). + Lines( + Contains("CI commit 05"), + Contains("CI commit 04"), + Contains("CI * renamed 03"), + Contains("CI commit 02"), + Contains("CI commit 01"), + ) + }, +}) diff --git a/pkg/integration/tests/test_list.go b/pkg/integration/tests/test_list.go index 03d995d92..26d02cd76 100644 --- a/pkg/integration/tests/test_list.go +++ b/pkg/integration/tests/test_list.go @@ -274,6 +274,7 @@ var tests = []*components.IntegrationTest{ interactive_rebase.RewordCommitWithEditorAndFail, interactive_rebase.RewordFirstCommit, interactive_rebase.RewordLastCommit, + interactive_rebase.RewordLastCommitOfStackedBranch, interactive_rebase.RewordYouAreHereCommit, interactive_rebase.RewordYouAreHereCommitWithEditor, interactive_rebase.ShowExecTodos,