From 6cbc1e0aced8b216adce5735775e484f226f3539 Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Fri, 4 Apr 2025 18:26:33 +0200 Subject: [PATCH] Add section headers for rebase todos, cherry-picks, reverts, and actual commits --- pkg/gui/context/local_commits_context.go | 47 +++++++++++++++++++ pkg/i18n/english.go | 8 ++++ .../tests/branch/rebase_and_drop.go | 4 ++ .../cherry_pick/cherry_pick_during_rebase.go | 4 ++ ...mend_when_there_are_conflicts_and_amend.go | 2 + ...end_when_there_are_conflicts_and_cancel.go | 2 + .../revert_with_conflict_multiple_commits.go | 2 + .../revert_with_conflict_single_commit.go | 2 + pkg/integration/tests/commit/shared.go | 2 + .../advanced_interactive_rebase.go | 6 +++ .../amend_commit_with_conflict.go | 4 ++ .../amend_head_commit_during_rebase.go | 4 ++ .../amend_non_head_commit_during_rebase.go | 2 + .../delete_update_ref_todo.go | 4 ++ .../dont_show_branch_heads_for_todo_items.go | 2 + .../drop_todo_commit_with_update_ref.go | 2 + .../interactive_rebase/edit_and_auto_amend.go | 2 + .../interactive_rebase/edit_first_commit.go | 2 + .../edit_last_commit_of_stacked_branch.go | 2 + .../edit_non_todo_commit_during_rebase.go | 2 + ...nge_select_down_to_merge_outside_rebase.go | 2 + .../edit_range_select_outside_rebase.go | 2 + .../edit_the_confl_commit.go | 2 + .../interactive_rebase_of_copied_branch.go | 2 + ...e_rebase_with_conflict_for_edit_command.go | 2 + .../mid_rebase_range_select.go | 26 ++++++++++ .../interactive_rebase/move_in_rebase.go | 16 +++++++ .../move_update_ref_todo.go | 4 ++ .../interactive_rebase/pick_rescheduled.go | 4 ++ .../tests/interactive_rebase/quick_start.go | 4 ++ .../quick_start_keep_selection.go | 2 + .../quick_start_keep_selection_range.go | 2 + .../tests/interactive_rebase/rebase.go | 12 +++++ ...vert_during_rebase_when_stopped_on_edit.go | 4 ++ ..._multiple_commits_in_interactive_rebase.go | 5 ++ ...ert_single_commit_in_interactive_rebase.go | 5 ++ .../reword_commit_with_editor_and_fail.go | 2 + .../reword_you_are_here_commit.go | 4 ++ .../reword_you_are_here_commit_with_editor.go | 4 ++ .../tests/interactive_rebase/shared.go | 2 + .../interactive_rebase/show_exec_todos.go | 4 ++ .../swap_in_rebase_with_conflict.go | 4 ++ .../swap_in_rebase_with_conflict_and_edit.go | 4 ++ .../view_files_of_todo_entries.go | 2 + .../sync/pull_rebase_interactive_conflict.go | 2 + .../pull_rebase_interactive_conflict_drop.go | 4 ++ 46 files changed, 231 insertions(+) diff --git a/pkg/gui/context/local_commits_context.go b/pkg/gui/context/local_commits_context.go index f40f7f0ff..6e69046c1 100644 --- a/pkg/gui/context/local_commits_context.go +++ b/pkg/gui/context/local_commits_context.go @@ -1,6 +1,7 @@ package context import ( + "fmt" "log" "strings" "time" @@ -66,6 +67,51 @@ func NewLocalCommitsContext(c *ContextCommon) *LocalCommitsContext { ) } + getNonModelItems := func() []*NonModelItem { + result := []*NonModelItem{} + if c.Model().WorkingTreeStateAtLastCommitRefresh.CanShowTodos() { + if c.Model().WorkingTreeStateAtLastCommitRefresh.Rebasing { + result = append(result, &NonModelItem{ + Index: 0, + Content: fmt.Sprintf("--- %s ---", c.Tr.PendingRebaseTodosSectionHeader), + }) + } + + if c.Model().WorkingTreeStateAtLastCommitRefresh.CherryPicking || + c.Model().WorkingTreeStateAtLastCommitRefresh.Reverting { + _, firstCherryPickOrRevertTodo, found := lo.FindIndexOf( + c.Model().Commits, func(c *models.Commit) bool { + return c.Status == models.StatusCherryPickingOrReverting || + c.Status == models.StatusConflicted + }) + if !found { + firstCherryPickOrRevertTodo = 0 + } + label := lo.Ternary(c.Model().WorkingTreeStateAtLastCommitRefresh.CherryPicking, + c.Tr.PendingCherryPicksSectionHeader, + c.Tr.PendingRevertsSectionHeader) + result = append(result, &NonModelItem{ + Index: firstCherryPickOrRevertTodo, + Content: fmt.Sprintf("--- %s ---", label), + }) + } + + _, firstRealCommit, found := lo.FindIndexOf( + c.Model().Commits, func(c *models.Commit) bool { + return !c.IsTODO() + }) + if !found { + firstRealCommit = 0 + } + result = append(result, &NonModelItem{ + Index: firstRealCommit, + Content: fmt.Sprintf("--- %s ---", c.Tr.CommitsSectionHeader), + }) + } + + return result + } + ctx := &LocalCommitsContext{ LocalCommitsViewModel: viewModel, SearchTrait: NewSearchTrait(c), @@ -82,6 +128,7 @@ func NewLocalCommitsContext(c *ContextCommon) *LocalCommitsContext { ListRenderer: ListRenderer{ list: viewModel, getDisplayStrings: getDisplayStrings, + getNonModelItems: getNonModelItems, }, c: c, refreshViewportOnChange: true, diff --git a/pkg/i18n/english.go b/pkg/i18n/english.go index ced96cc8a..e25bde0e4 100644 --- a/pkg/i18n/english.go +++ b/pkg/i18n/english.go @@ -350,6 +350,10 @@ type TranslationSet struct { NoRoom string YouAreHere string ConflictLabel string + PendingRebaseTodosSectionHeader string + PendingCherryPicksSectionHeader string + PendingRevertsSectionHeader string + CommitsSectionHeader string YouDied string RewordNotSupported string ChangingThisActionIsNotAllowed string @@ -1419,6 +1423,10 @@ func EnglishTranslationSet() *TranslationSet { NoRoom: "Not enough room", YouAreHere: "YOU ARE HERE", ConflictLabel: "CONFLICT", + PendingRebaseTodosSectionHeader: "Pending rebase todos", + PendingCherryPicksSectionHeader: "Pending cherry-picks", + PendingRevertsSectionHeader: "Pending reverts", + CommitsSectionHeader: "Commits", YouDied: "YOU DIED!", RewordNotSupported: "Rewording commits while interactively rebasing is not currently supported", ChangingThisActionIsNotAllowed: "Changing this kind of rebase todo entry is not allowed", diff --git a/pkg/integration/tests/branch/rebase_and_drop.go b/pkg/integration/tests/branch/rebase_and_drop.go index 88e2e39c6..896d27068 100644 --- a/pkg/integration/tests/branch/rebase_and_drop.go +++ b/pkg/integration/tests/branch/rebase_and_drop.go @@ -51,9 +51,11 @@ var RebaseAndDrop = NewIntegrationTest(NewIntegrationTestArgs{ t.Views().Commits(). Focus(). TopLines( + Contains("--- Pending rebase todos ---"), MatchesRegexp(`pick.*to keep`).IsSelected(), MatchesRegexp(`pick.*to remove`), MatchesRegexp(`pick.*CONFLICT.*first change`), + Contains("--- Commits ---"), MatchesRegexp("second-change-branch unrelated change"), MatchesRegexp("second change"), MatchesRegexp("original"), @@ -61,9 +63,11 @@ var RebaseAndDrop = NewIntegrationTest(NewIntegrationTestArgs{ SelectNextItem(). Press(keys.Universal.Remove). TopLines( + Contains("--- Pending rebase todos ---"), MatchesRegexp(`pick.*to keep`), MatchesRegexp(`drop.*to remove`).IsSelected(), MatchesRegexp(`pick.*CONFLICT.*first change`), + Contains("--- Commits ---"), MatchesRegexp("second-change-branch unrelated change"), MatchesRegexp("second change"), MatchesRegexp("original"), diff --git a/pkg/integration/tests/cherry_pick/cherry_pick_during_rebase.go b/pkg/integration/tests/cherry_pick/cherry_pick_during_rebase.go index 183333754..e6dfb3ef0 100644 --- a/pkg/integration/tests/cherry_pick/cherry_pick_during_rebase.go +++ b/pkg/integration/tests/cherry_pick/cherry_pick_during_rebase.go @@ -59,7 +59,9 @@ var CherryPickDuringRebase = NewIntegrationTest(NewIntegrationTestArgs{ SelectNextItem(). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick CI two"), + Contains("--- Commits ---"), Contains(" CI <-- YOU ARE HERE --- one").IsSelected(), Contains(" CI base"), ). @@ -74,7 +76,9 @@ var CherryPickDuringRebase = NewIntegrationTest(NewIntegrationTestArgs{ t.Views().Information().Content(DoesNotContain("commit copied")) }). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick CI two"), + Contains("--- Commits ---"), Contains(" CI <-- YOU ARE HERE --- three"), Contains(" CI one"), Contains(" CI base"), diff --git a/pkg/integration/tests/commit/amend_when_there_are_conflicts_and_amend.go b/pkg/integration/tests/commit/amend_when_there_are_conflicts_and_amend.go index c031e0c3d..acc2f389c 100644 --- a/pkg/integration/tests/commit/amend_when_there_are_conflicts_and_amend.go +++ b/pkg/integration/tests/commit/amend_when_there_are_conflicts_and_amend.go @@ -29,8 +29,10 @@ var AmendWhenThereAreConflictsAndAmend = NewIntegrationTest(NewIntegrationTestAr t.Views().Commits(). Focus(). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("commit three"), Contains("pick").Contains("<-- CONFLICT --- file1 changed in branch"), + Contains("--- Commits ---"), Contains("commit two"), Contains("file1 changed in master"), Contains("base commit"), diff --git a/pkg/integration/tests/commit/amend_when_there_are_conflicts_and_cancel.go b/pkg/integration/tests/commit/amend_when_there_are_conflicts_and_cancel.go index 126409631..f7f5ec2e1 100644 --- a/pkg/integration/tests/commit/amend_when_there_are_conflicts_and_cancel.go +++ b/pkg/integration/tests/commit/amend_when_there_are_conflicts_and_cancel.go @@ -33,8 +33,10 @@ var AmendWhenThereAreConflictsAndCancel = NewIntegrationTest(NewIntegrationTestA t.Views().Commits(). Focus(). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("commit three"), Contains("pick").Contains("<-- CONFLICT --- file1 changed in branch"), + Contains("--- Commits ---"), Contains("commit two"), Contains("file1 changed in master"), Contains("base commit"), diff --git a/pkg/integration/tests/commit/revert_with_conflict_multiple_commits.go b/pkg/integration/tests/commit/revert_with_conflict_multiple_commits.go index ad3761ba2..e702c79b3 100644 --- a/pkg/integration/tests/commit/revert_with_conflict_multiple_commits.go +++ b/pkg/integration/tests/commit/revert_with_conflict_multiple_commits.go @@ -44,8 +44,10 @@ var RevertWithConflictMultipleCommits = NewIntegrationTest(NewIntegrationTestArg Confirm() }). Lines( + Contains("--- Pending reverts ---"), Contains("revert").Contains("CI unrelated change"), Contains("revert").Contains("CI <-- CONFLICT --- add first line"), + Contains("--- Commits ---"), Contains("CI ◯ add second line"), Contains("CI ◯ add first line"), Contains("CI ◯ unrelated change"), diff --git a/pkg/integration/tests/commit/revert_with_conflict_single_commit.go b/pkg/integration/tests/commit/revert_with_conflict_single_commit.go index 480952464..4d98fdfe5 100644 --- a/pkg/integration/tests/commit/revert_with_conflict_single_commit.go +++ b/pkg/integration/tests/commit/revert_with_conflict_single_commit.go @@ -39,7 +39,9 @@ var RevertWithConflictSingleCommit = NewIntegrationTest(NewIntegrationTestArgs{ Confirm() }). Lines( + Contains("--- Pending reverts ---"), Contains("revert").Contains("CI <-- CONFLICT --- add first line"), + Contains("--- Commits ---"), Contains("CI ◯ add second line"), Contains("CI ◯ add first line"), Contains("CI ◯ add empty file"), diff --git a/pkg/integration/tests/commit/shared.go b/pkg/integration/tests/commit/shared.go index 17b06108d..918197aaf 100644 --- a/pkg/integration/tests/commit/shared.go +++ b/pkg/integration/tests/commit/shared.go @@ -43,8 +43,10 @@ func doTheRebaseForAmendTests(t *TestDriver, keys config.KeybindingConfig) { t.Views().Commits(). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("commit three"), Contains("pick").Contains("<-- CONFLICT --- file1 changed in branch"), + Contains("--- Commits ---"), Contains("commit two"), Contains("file1 changed in master"), Contains("base commit"), diff --git a/pkg/integration/tests/interactive_rebase/advanced_interactive_rebase.go b/pkg/integration/tests/interactive_rebase/advanced_interactive_rebase.go index 771b2e164..bcf84e59c 100644 --- a/pkg/integration/tests/interactive_rebase/advanced_interactive_rebase.go +++ b/pkg/integration/tests/interactive_rebase/advanced_interactive_rebase.go @@ -45,19 +45,25 @@ var AdvancedInteractiveRebase = NewIntegrationTest(NewIntegrationTestArgs{ t.Views().Commits(). IsFocused(). Lines( + Contains("--- Pending rebase todos ---"), Contains(TOP_COMMIT), + Contains("--- Commits ---"), Contains(BASE_COMMIT).Contains("YOU ARE HERE"), ). NavigateToLine(Contains(TOP_COMMIT)). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains(TOP_COMMIT).Contains("edit"), + Contains("--- Commits ---"), Contains(BASE_COMMIT).Contains("YOU ARE HERE"), ). Tap(func() { t.Common().ContinueRebase() }). Lines( + Contains("--- Pending rebase todos ---"), + Contains("--- Commits ---"), Contains(TOP_COMMIT).Contains("YOU ARE HERE"), Contains(BASE_COMMIT), ) diff --git a/pkg/integration/tests/interactive_rebase/amend_commit_with_conflict.go b/pkg/integration/tests/interactive_rebase/amend_commit_with_conflict.go index 7cf49ba63..ef01739dc 100644 --- a/pkg/integration/tests/interactive_rebase/amend_commit_with_conflict.go +++ b/pkg/integration/tests/interactive_rebase/amend_commit_with_conflict.go @@ -34,8 +34,10 @@ var AmendCommitWithConflict = NewIntegrationTest(NewIntegrationTestArgs{ t.Common().AcknowledgeConflicts() }). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("three"), Contains("fixup").Contains("<-- CONFLICT --- fixup! two"), + Contains("--- Commits ---"), Contains("two"), Contains("one"), ) @@ -66,7 +68,9 @@ var AmendCommitWithConflict = NewIntegrationTest(NewIntegrationTestArgs{ t.Views().Commits(). Lines( + Contains("--- Pending rebase todos ---"), Contains("<-- CONFLICT --- three"), + Contains("--- Commits ---"), Contains("two"), Contains("one"), ) diff --git a/pkg/integration/tests/interactive_rebase/amend_head_commit_during_rebase.go b/pkg/integration/tests/interactive_rebase/amend_head_commit_during_rebase.go index 10e7f0639..5d24d2a08 100644 --- a/pkg/integration/tests/interactive_rebase/amend_head_commit_during_rebase.go +++ b/pkg/integration/tests/interactive_rebase/amend_head_commit_during_rebase.go @@ -24,7 +24,9 @@ var AmendHeadCommitDuringRebase = NewIntegrationTest(NewIntegrationTestArgs{ NavigateToLine(Contains("commit 02")). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit 03"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 02").IsSelected(), Contains("commit 01"), ) @@ -48,7 +50,9 @@ var AmendHeadCommitDuringRebase = NewIntegrationTest(NewIntegrationTestArgs{ Confirm() }). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit 03"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 02").IsSelected(), Contains("commit 01"), ) diff --git a/pkg/integration/tests/interactive_rebase/amend_non_head_commit_during_rebase.go b/pkg/integration/tests/interactive_rebase/amend_non_head_commit_during_rebase.go index a0d0f066e..fca17bfb4 100644 --- a/pkg/integration/tests/interactive_rebase/amend_non_head_commit_during_rebase.go +++ b/pkg/integration/tests/interactive_rebase/amend_non_head_commit_during_rebase.go @@ -24,7 +24,9 @@ var AmendNonHeadCommitDuringRebase = NewIntegrationTest(NewIntegrationTestArgs{ NavigateToLine(Contains("commit 02")). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit 03"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 02"), Contains("commit 01"), ) diff --git a/pkg/integration/tests/interactive_rebase/delete_update_ref_todo.go b/pkg/integration/tests/interactive_rebase/delete_update_ref_todo.go index 9bb216cfe..28000bdb0 100644 --- a/pkg/integration/tests/interactive_rebase/delete_update_ref_todo.go +++ b/pkg/integration/tests/interactive_rebase/delete_update_ref_todo.go @@ -26,12 +26,14 @@ var DeleteUpdateRefTodo = NewIntegrationTest(NewIntegrationTestArgs{ NavigateToLine(Contains("commit 01")). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("CI commit 06"), Contains("pick").Contains("CI commit 05"), Contains("pick").Contains("CI commit 04"), Contains("update-ref").Contains("branch1"), Contains("pick").Contains("CI commit 03"), Contains("pick").Contains("CI commit 02"), + Contains("--- Commits ---"), Contains("CI ◯ <-- YOU ARE HERE --- commit 01"), ). NavigateToLine(Contains("update-ref")). @@ -43,11 +45,13 @@ var DeleteUpdateRefTodo = NewIntegrationTest(NewIntegrationTestArgs{ Confirm() }). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("CI commit 06"), Contains("pick").Contains("CI commit 05"), Contains("pick").Contains("CI commit 04"), Contains("pick").Contains("CI commit 03").IsSelected(), Contains("pick").Contains("CI commit 02"), + Contains("--- Commits ---"), Contains("CI ◯ <-- YOU ARE HERE --- commit 01"), ). NavigateToLine(Contains("commit 02")). diff --git a/pkg/integration/tests/interactive_rebase/dont_show_branch_heads_for_todo_items.go b/pkg/integration/tests/interactive_rebase/dont_show_branch_heads_for_todo_items.go index 7c2599f0b..8f26e6803 100644 --- a/pkg/integration/tests/interactive_rebase/dont_show_branch_heads_for_todo_items.go +++ b/pkg/integration/tests/interactive_rebase/dont_show_branch_heads_for_todo_items.go @@ -41,12 +41,14 @@ var DontShowBranchHeadsForTodoItems = NewIntegrationTest(NewIntegrationTestArgs{ NavigateToLine(Contains("commit 04")). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("CI commit 09"), Contains("pick").Contains("CI commit 08"), Contains("pick").Contains("CI commit 07"), Contains("update-ref").Contains("branch2"), Contains("pick").Contains("CI commit 06"), // no star on this entry, even though branch2 points to it Contains("pick").Contains("CI commit 05"), + Contains("--- Commits ---"), Contains("CI <-- YOU ARE HERE --- commit 04"), Contains("CI commit 03"), Contains("CI * commit 02"), // this star is fine though diff --git a/pkg/integration/tests/interactive_rebase/drop_todo_commit_with_update_ref.go b/pkg/integration/tests/interactive_rebase/drop_todo_commit_with_update_ref.go index 8510055af..8e596733d 100644 --- a/pkg/integration/tests/interactive_rebase/drop_todo_commit_with_update_ref.go +++ b/pkg/integration/tests/interactive_rebase/drop_todo_commit_with_update_ref.go @@ -39,12 +39,14 @@ var DropTodoCommitWithUpdateRef = NewIntegrationTest(NewIntegrationTestArgs{ NavigateToLine(Contains("commit 02")). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("CI commit 07"), Contains("pick").Contains("CI commit 06"), Contains("pick").Contains("CI commit 05"), Contains("update-ref").Contains("branch1").DoesNotContain("*"), Contains("pick").Contains("CI commit 04"), Contains("pick").Contains("CI commit 03"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 02").IsSelected(), Contains("CI commit 01"), ). diff --git a/pkg/integration/tests/interactive_rebase/edit_and_auto_amend.go b/pkg/integration/tests/interactive_rebase/edit_and_auto_amend.go index 8c569ede6..e07146a06 100644 --- a/pkg/integration/tests/interactive_rebase/edit_and_auto_amend.go +++ b/pkg/integration/tests/interactive_rebase/edit_and_auto_amend.go @@ -25,7 +25,9 @@ var EditAndAutoAmend = NewIntegrationTest(NewIntegrationTestArgs{ NavigateToLine(Contains("commit 02")). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit 03"), + Contains("--- Commits ---"), MatchesRegexp("YOU ARE HERE.*commit 02").IsSelected(), Contains("commit 01"), ) diff --git a/pkg/integration/tests/interactive_rebase/edit_first_commit.go b/pkg/integration/tests/interactive_rebase/edit_first_commit.go index f6ea49ed1..c30a1cfb1 100644 --- a/pkg/integration/tests/interactive_rebase/edit_first_commit.go +++ b/pkg/integration/tests/interactive_rebase/edit_first_commit.go @@ -24,7 +24,9 @@ var EditFirstCommit = NewIntegrationTest(NewIntegrationTestArgs{ NavigateToLine(Contains("commit 01")). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit 02"), + Contains("--- Commits ---"), MatchesRegexp("YOU ARE HERE.*commit 01").IsSelected(), ). Tap(func() { diff --git a/pkg/integration/tests/interactive_rebase/edit_last_commit_of_stacked_branch.go b/pkg/integration/tests/interactive_rebase/edit_last_commit_of_stacked_branch.go index 35d89e8e9..a4d7558fe 100644 --- a/pkg/integration/tests/interactive_rebase/edit_last_commit_of_stacked_branch.go +++ b/pkg/integration/tests/interactive_rebase/edit_last_commit_of_stacked_branch.go @@ -37,9 +37,11 @@ var EditLastCommitOfStackedBranch = NewIntegrationTest(NewIntegrationTestArgs{ NavigateToLine(Contains("commit 03")). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("CI commit 05"), Contains("pick").Contains("CI commit 04"), Contains("update-ref").Contains("branch1"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- * commit 03").IsSelected(), Contains("CI commit 02"), Contains("CI commit 01"), diff --git a/pkg/integration/tests/interactive_rebase/edit_non_todo_commit_during_rebase.go b/pkg/integration/tests/interactive_rebase/edit_non_todo_commit_during_rebase.go index 88417ccdd..f1665157a 100644 --- a/pkg/integration/tests/interactive_rebase/edit_non_todo_commit_during_rebase.go +++ b/pkg/integration/tests/interactive_rebase/edit_non_todo_commit_during_rebase.go @@ -23,6 +23,8 @@ var EditNonTodoCommitDuringRebase = NewIntegrationTest(NewIntegrationTestArgs{ ). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 02"), Contains("commit 01"), ). diff --git a/pkg/integration/tests/interactive_rebase/edit_range_select_down_to_merge_outside_rebase.go b/pkg/integration/tests/interactive_rebase/edit_range_select_down_to_merge_outside_rebase.go index 8ef1446fb..9182c21c8 100644 --- a/pkg/integration/tests/interactive_rebase/edit_range_select_down_to_merge_outside_rebase.go +++ b/pkg/integration/tests/interactive_rebase/edit_range_select_down_to_merge_outside_rebase.go @@ -27,8 +27,10 @@ var EditRangeSelectDownToMergeOutsideRebase = NewIntegrationTest(NewIntegrationT Press(keys.Universal.RangeSelectDown). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("edit CI commit 02").IsSelected(), Contains("edit CI commit 01").IsSelected(), + Contains("--- Commits ---").IsSelected(), Contains(" CI ⏣─╮ <-- YOU ARE HERE --- Merge branch 'second-change-branch' into first-change-branch").IsSelected(), Contains(" CI │ ◯ * second-change-branch unrelated change"), Contains(" CI │ ◯ second change"), diff --git a/pkg/integration/tests/interactive_rebase/edit_range_select_outside_rebase.go b/pkg/integration/tests/interactive_rebase/edit_range_select_outside_rebase.go index d12a9c77d..464024184 100644 --- a/pkg/integration/tests/interactive_rebase/edit_range_select_outside_rebase.go +++ b/pkg/integration/tests/interactive_rebase/edit_range_select_outside_rebase.go @@ -37,11 +37,13 @@ var EditRangeSelectOutsideRebase = NewIntegrationTest(NewIntegrationTestArgs{ ). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("merge CI Merge branch 'second-change-branch' into first-change-branch").IsSelected(), Contains("edit CI first change").IsSelected(), Contains("edit CI * second-change-branch unrelated change").IsSelected(), Contains("edit CI second change").IsSelected(), Contains("edit CI * original").IsSelected(), + Contains("--- Commits ---").IsSelected(), Contains(" CI ◯ <-- YOU ARE HERE --- three").IsSelected(), Contains(" CI ◯ two"), Contains(" CI ◯ one"), diff --git a/pkg/integration/tests/interactive_rebase/edit_the_confl_commit.go b/pkg/integration/tests/interactive_rebase/edit_the_confl_commit.go index 17d3ffe0e..5e03acdd5 100644 --- a/pkg/integration/tests/interactive_rebase/edit_the_confl_commit.go +++ b/pkg/integration/tests/interactive_rebase/edit_the_confl_commit.go @@ -32,8 +32,10 @@ var EditTheConflCommit = NewIntegrationTest(NewIntegrationTestArgs{ }). Focus(). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("commit two"), Contains("pick").Contains("<-- CONFLICT --- commit three"), + Contains("--- Commits ---"), Contains("commit one"), ). NavigateToLine(Contains("<-- CONFLICT --- commit three")). diff --git a/pkg/integration/tests/interactive_rebase/interactive_rebase_of_copied_branch.go b/pkg/integration/tests/interactive_rebase/interactive_rebase_of_copied_branch.go index 402d54b52..78e4e9cd9 100644 --- a/pkg/integration/tests/interactive_rebase/interactive_rebase_of_copied_branch.go +++ b/pkg/integration/tests/interactive_rebase/interactive_rebase_of_copied_branch.go @@ -32,9 +32,11 @@ var InteractiveRebaseOfCopiedBranch = NewIntegrationTest(NewIntegrationTestArgs{ NavigateToLine(Contains("commit 01")). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), // No update-ref todo for branch1 here, even though command-line git would have added it Contains("pick").Contains("CI commit 03"), Contains("pick").Contains("CI commit 02"), + Contains("--- Commits ---"), Contains("CI <-- YOU ARE HERE --- commit 01"), ) }, diff --git a/pkg/integration/tests/interactive_rebase/interactive_rebase_with_conflict_for_edit_command.go b/pkg/integration/tests/interactive_rebase/interactive_rebase_with_conflict_for_edit_command.go index fd09dfe3c..11596e758 100644 --- a/pkg/integration/tests/interactive_rebase/interactive_rebase_with_conflict_for_edit_command.go +++ b/pkg/integration/tests/interactive_rebase/interactive_rebase_with_conflict_for_edit_command.go @@ -52,7 +52,9 @@ var InteractiveRebaseWithConflictForEditCommand = NewIntegrationTest(NewIntegrat t.Views().Commits(). Lines( + Contains("--- Pending rebase todos ---"), Contains("edit").Contains("<-- CONFLICT --- this will conflict").IsSelected(), + Contains("--- Commits ---"), Contains("commit 03"), Contains("commit 02"), Contains("commit 01"), diff --git a/pkg/integration/tests/interactive_rebase/mid_rebase_range_select.go b/pkg/integration/tests/interactive_rebase/mid_rebase_range_select.go index c94b63295..c5574748e 100644 --- a/pkg/integration/tests/interactive_rebase/mid_rebase_range_select.go +++ b/pkg/integration/tests/interactive_rebase/mid_rebase_range_select.go @@ -24,11 +24,13 @@ var MidRebaseRangeSelect = NewIntegrationTest(NewIntegrationTestArgs{ // Start a rebase Press(keys.Universal.Edit). TopLines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("commit 10"), Contains("pick").Contains("commit 09"), Contains("pick").Contains("commit 08"), Contains("pick").Contains("commit 07"), Contains("pick").Contains("commit 06"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 05").IsSelected(), Contains("commit 04"), ). @@ -36,61 +38,73 @@ var MidRebaseRangeSelect = NewIntegrationTest(NewIntegrationTestArgs{ // perform various actions on a range of commits Press(keys.Universal.RangeSelectUp). TopLines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("commit 10"), Contains("pick").Contains("commit 09"), Contains("pick").Contains("commit 08"), Contains("pick").Contains("commit 07").IsSelected(), Contains("pick").Contains("commit 06").IsSelected(), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 05"), Contains("commit 04"), ). Press(keys.Commits.MarkCommitAsFixup). TopLines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("commit 10"), Contains("pick").Contains("commit 09"), Contains("pick").Contains("commit 08"), Contains("fixup").Contains("commit 07").IsSelected(), Contains("fixup").Contains("commit 06").IsSelected(), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 05"), Contains("commit 04"), ). Press(keys.Commits.PickCommit). TopLines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("commit 10"), Contains("pick").Contains("commit 09"), Contains("pick").Contains("commit 08"), Contains("pick").Contains("commit 07").IsSelected(), Contains("pick").Contains("commit 06").IsSelected(), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 05"), Contains("commit 04"), ). Press(keys.Universal.Edit). TopLines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("commit 10"), Contains("pick").Contains("commit 09"), Contains("pick").Contains("commit 08"), Contains("edit").Contains("commit 07").IsSelected(), Contains("edit").Contains("commit 06").IsSelected(), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 05"), Contains("commit 04"), ). Press(keys.Commits.SquashDown). TopLines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("commit 10"), Contains("pick").Contains("commit 09"), Contains("pick").Contains("commit 08"), Contains("squash").Contains("commit 07").IsSelected(), Contains("squash").Contains("commit 06").IsSelected(), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 05"), Contains("commit 04"), ). Press(keys.Commits.MoveDownCommit). TopLines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("commit 10"), Contains("pick").Contains("commit 09"), Contains("pick").Contains("commit 08"), Contains("squash").Contains("commit 07").IsSelected(), Contains("squash").Contains("commit 06").IsSelected(), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 05"), Contains("commit 04"), ). @@ -99,31 +113,37 @@ var MidRebaseRangeSelect = NewIntegrationTest(NewIntegrationTestArgs{ }). Press(keys.Commits.MoveUpCommit). TopLines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("commit 10"), Contains("pick").Contains("commit 09"), Contains("squash").Contains("commit 07").IsSelected(), Contains("squash").Contains("commit 06").IsSelected(), Contains("pick").Contains("commit 08"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 05"), Contains("commit 04"), ). Press(keys.Commits.MoveUpCommit). TopLines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("commit 10"), Contains("squash").Contains("commit 07").IsSelected(), Contains("squash").Contains("commit 06").IsSelected(), Contains("pick").Contains("commit 09"), Contains("pick").Contains("commit 08"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 05"), Contains("commit 04"), ). Press(keys.Commits.MoveUpCommit). TopLines( + Contains("--- Pending rebase todos ---"), Contains("squash").Contains("commit 07").IsSelected(), Contains("squash").Contains("commit 06").IsSelected(), Contains("pick").Contains("commit 10"), Contains("pick").Contains("commit 09"), Contains("pick").Contains("commit 08"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 05"), Contains("commit 04"), ). @@ -132,11 +152,13 @@ var MidRebaseRangeSelect = NewIntegrationTest(NewIntegrationTestArgs{ t.ExpectToast(Contains("Disabled: Cannot move any further")) }). TopLines( + Contains("--- Pending rebase todos ---"), Contains("squash").Contains("commit 07").IsSelected(), Contains("squash").Contains("commit 06").IsSelected(), Contains("pick").Contains("commit 10"), Contains("pick").Contains("commit 09"), Contains("pick").Contains("commit 08"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 05"), Contains("commit 04"), ). @@ -145,11 +167,13 @@ var MidRebaseRangeSelect = NewIntegrationTest(NewIntegrationTestArgs{ NavigateToLine(Contains("commit 08")). Press(keys.Universal.RangeSelectDown). TopLines( + Contains("--- Pending rebase todos ---"), Contains("squash").Contains("commit 07"), Contains("squash").Contains("commit 06"), Contains("pick").Contains("commit 10"), Contains("pick").Contains("commit 09"), Contains("pick").Contains("commit 08").IsSelected(), + Contains("--- Commits ---").IsSelected(), Contains("<-- YOU ARE HERE --- commit 05").IsSelected(), Contains("commit 04"), ). @@ -158,11 +182,13 @@ var MidRebaseRangeSelect = NewIntegrationTest(NewIntegrationTestArgs{ t.ExpectToast(Contains("Disabled: When rebasing, this action only works on a selection of TODO commits.")) }). TopLines( + Contains("--- Pending rebase todos ---"), Contains("squash").Contains("commit 07"), Contains("squash").Contains("commit 06"), Contains("pick").Contains("commit 10"), Contains("pick").Contains("commit 09"), Contains("pick").Contains("commit 08").IsSelected(), + Contains("--- Commits ---").IsSelected(), Contains("<-- YOU ARE HERE --- commit 05").IsSelected(), Contains("commit 04"), ). diff --git a/pkg/integration/tests/interactive_rebase/move_in_rebase.go b/pkg/integration/tests/interactive_rebase/move_in_rebase.go index 48b74a7a4..56f34e489 100644 --- a/pkg/integration/tests/interactive_rebase/move_in_rebase.go +++ b/pkg/integration/tests/interactive_rebase/move_in_rebase.go @@ -25,24 +25,30 @@ var MoveInRebase = NewIntegrationTest(NewIntegrationTestArgs{ NavigateToLine(Contains("commit 01")). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit 04"), Contains("commit 03"), Contains("commit 02"), + Contains("--- Commits ---"), Contains("YOU ARE HERE").Contains("commit 01").IsSelected(), ). SelectPreviousItem(). Press(keys.Commits.MoveUpCommit). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit 04"), Contains("commit 02").IsSelected(), Contains("commit 03"), + Contains("--- Commits ---"), Contains("YOU ARE HERE").Contains("commit 01"), ). Press(keys.Commits.MoveUpCommit). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit 02").IsSelected(), Contains("commit 04"), Contains("commit 03"), + Contains("--- Commits ---"), Contains("YOU ARE HERE").Contains("commit 01"), ). // assert we can't move past the top @@ -51,23 +57,29 @@ var MoveInRebase = NewIntegrationTest(NewIntegrationTestArgs{ t.ExpectToast(Contains("Disabled: Cannot move any further")) }). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit 02").IsSelected(), Contains("commit 04"), Contains("commit 03"), + Contains("--- Commits ---"), Contains("YOU ARE HERE").Contains("commit 01"), ). Press(keys.Commits.MoveDownCommit). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit 04"), Contains("commit 02").IsSelected(), Contains("commit 03"), + Contains("--- Commits ---"), Contains("YOU ARE HERE").Contains("commit 01"), ). Press(keys.Commits.MoveDownCommit). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit 04"), Contains("commit 03"), Contains("commit 02").IsSelected(), + Contains("--- Commits ---"), Contains("YOU ARE HERE").Contains("commit 01"), ). // assert we can't move past the bottom @@ -76,17 +88,21 @@ var MoveInRebase = NewIntegrationTest(NewIntegrationTestArgs{ t.ExpectToast(Contains("Disabled: Cannot move any further")) }). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit 04"), Contains("commit 03"), Contains("commit 02").IsSelected(), + Contains("--- Commits ---"), Contains("YOU ARE HERE").Contains("commit 01"), ). // move it back up one so that we land in a different order than we started with Press(keys.Commits.MoveUpCommit). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit 04"), Contains("commit 02").IsSelected(), Contains("commit 03"), + Contains("--- Commits ---"), Contains("YOU ARE HERE").Contains("commit 01"), ). Tap(func() { diff --git a/pkg/integration/tests/interactive_rebase/move_update_ref_todo.go b/pkg/integration/tests/interactive_rebase/move_update_ref_todo.go index 3dbfcd9cb..b0025ebbf 100644 --- a/pkg/integration/tests/interactive_rebase/move_update_ref_todo.go +++ b/pkg/integration/tests/interactive_rebase/move_update_ref_todo.go @@ -26,24 +26,28 @@ var MoveUpdateRefTodo = NewIntegrationTest(NewIntegrationTestArgs{ NavigateToLine(Contains("commit 01")). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("CI commit 06"), Contains("pick").Contains("CI commit 05"), Contains("pick").Contains("CI commit 04"), Contains("update-ref").Contains("branch1"), Contains("pick").Contains("CI commit 03"), Contains("pick").Contains("CI commit 02"), + Contains("--- Commits ---"), Contains("CI ◯ <-- YOU ARE HERE --- commit 01"), ). NavigateToLine(Contains("update-ref")). Press(keys.Commits.MoveUpCommit). Press(keys.Commits.MoveUpCommit). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("CI commit 06"), Contains("update-ref").Contains("branch1"), Contains("pick").Contains("CI commit 05"), Contains("pick").Contains("CI commit 04"), Contains("pick").Contains("CI commit 03"), Contains("pick").Contains("CI commit 02"), + Contains("--- Commits ---"), Contains("CI ◯ <-- YOU ARE HERE --- commit 01"), ). Tap(func() { diff --git a/pkg/integration/tests/interactive_rebase/pick_rescheduled.go b/pkg/integration/tests/interactive_rebase/pick_rescheduled.go index bd0f385f9..c37304b8e 100644 --- a/pkg/integration/tests/interactive_rebase/pick_rescheduled.go +++ b/pkg/integration/tests/interactive_rebase/pick_rescheduled.go @@ -26,8 +26,10 @@ var PickRescheduled = NewIntegrationTest(NewIntegrationTestArgs{ NavigateToLine(Contains("one")). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("three"), Contains("pick").Contains("two"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- one").IsSelected(), ). Tap(func() { @@ -39,7 +41,9 @@ var PickRescheduled = NewIntegrationTest(NewIntegrationTestArgs{ Confirm() }). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("three"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- two"), Contains("one"), ) diff --git a/pkg/integration/tests/interactive_rebase/quick_start.go b/pkg/integration/tests/interactive_rebase/quick_start.go index d0454d6cf..ad36570f3 100644 --- a/pkg/integration/tests/interactive_rebase/quick_start.go +++ b/pkg/integration/tests/interactive_rebase/quick_start.go @@ -73,8 +73,10 @@ var QuickStart = NewIntegrationTest(NewIntegrationTestArgs{ // Verify quick start picks the last commit on the main branch Press(keys.Commits.StartInteractiveRebase). Lines( + Contains("--- Pending rebase todos ---"), Contains("feature-branch two").IsSelected(), Contains("feature-branch one"), + Contains("--- Commits ---"), Contains("last main commit").Contains("YOU ARE HERE"), Contains("initial commit"), ). @@ -104,7 +106,9 @@ var QuickStart = NewIntegrationTest(NewIntegrationTestArgs{ ). Press(keys.Commits.StartInteractiveRebase). Lines( + Contains("--- Pending rebase todos ---"), Contains("branch-with-merge three").IsSelected(), + Contains("--- Commits ---"), Contains("Merge branch 'branch-to-merge'").Contains("YOU ARE HERE"), Contains("branch-to-merge two"), Contains("branch-to-merge one"), diff --git a/pkg/integration/tests/interactive_rebase/quick_start_keep_selection.go b/pkg/integration/tests/interactive_rebase/quick_start_keep_selection.go index e17d59fc3..63f90b87a 100644 --- a/pkg/integration/tests/interactive_rebase/quick_start_keep_selection.go +++ b/pkg/integration/tests/interactive_rebase/quick_start_keep_selection.go @@ -39,6 +39,7 @@ var QuickStartKeepSelection = NewIntegrationTest(NewIntegrationTestArgs{ NavigateToLine(Contains("commit 02")). Press(keys.Commits.StartInteractiveRebase). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("CI commit 07"), Contains("pick").Contains("CI commit 06"), Contains("pick").Contains("CI commit 05"), @@ -46,6 +47,7 @@ var QuickStartKeepSelection = NewIntegrationTest(NewIntegrationTestArgs{ Contains("pick").Contains("CI commit 04"), Contains("pick").Contains("CI commit 03"), Contains("CI commit 02").IsSelected(), + Contains("--- Commits ---"), Contains("CI <-- YOU ARE HERE --- commit 01"), ) }, diff --git a/pkg/integration/tests/interactive_rebase/quick_start_keep_selection_range.go b/pkg/integration/tests/interactive_rebase/quick_start_keep_selection_range.go index 12c2a87aa..31cec80ee 100644 --- a/pkg/integration/tests/interactive_rebase/quick_start_keep_selection_range.go +++ b/pkg/integration/tests/interactive_rebase/quick_start_keep_selection_range.go @@ -43,6 +43,7 @@ var QuickStartKeepSelectionRange = NewIntegrationTest(NewIntegrationTestArgs{ ). Press(keys.Commits.StartInteractiveRebase). Lines( + Contains("--- Pending rebase todos ---"), Contains("CI commit 07"), Contains("CI commit 06"), Contains("update-ref").Contains("branch2"), @@ -51,6 +52,7 @@ var QuickStartKeepSelectionRange = NewIntegrationTest(NewIntegrationTestArgs{ Contains("update-ref").Contains("branch1").IsSelected(), Contains("CI commit 03").IsSelected(), Contains("CI commit 02").IsSelected(), + Contains("--- Commits ---"), Contains("CI <-- YOU ARE HERE --- commit 01"), ) }, diff --git a/pkg/integration/tests/interactive_rebase/rebase.go b/pkg/integration/tests/interactive_rebase/rebase.go index 2b279a22e..93cf56e94 100644 --- a/pkg/integration/tests/interactive_rebase/rebase.go +++ b/pkg/integration/tests/interactive_rebase/rebase.go @@ -34,50 +34,60 @@ var Rebase = NewIntegrationTest(NewIntegrationTestArgs{ NavigateToLine(Contains("first commit to edit")). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), MatchesRegexp("pick.*commit to fixup"), MatchesRegexp("pick.*commit to drop"), MatchesRegexp("pick.*second commit to edit"), MatchesRegexp("pick.*commit to squash"), + Contains("--- Commits ---"), MatchesRegexp("YOU ARE HERE.*first commit to edit").IsSelected(), Contains("initial commit"), ). SelectPreviousItem(). Press(keys.Commits.SquashDown). Lines( + Contains("--- Pending rebase todos ---"), MatchesRegexp("pick.*commit to fixup"), MatchesRegexp("pick.*commit to drop"), MatchesRegexp("pick.*second commit to edit"), MatchesRegexp("squash.*commit to squash").IsSelected(), + Contains("--- Commits ---"), MatchesRegexp("YOU ARE HERE.*first commit to edit"), Contains("initial commit"), ). SelectPreviousItem(). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), MatchesRegexp("pick.*commit to fixup"), MatchesRegexp("pick.*commit to drop"), MatchesRegexp("edit.*second commit to edit").IsSelected(), MatchesRegexp("squash.*commit to squash"), + Contains("--- Commits ---"), MatchesRegexp("YOU ARE HERE.*first commit to edit"), Contains("initial commit"), ). SelectPreviousItem(). Press(keys.Universal.Remove). Lines( + Contains("--- Pending rebase todos ---"), MatchesRegexp("pick.*commit to fixup"), MatchesRegexp("drop.*commit to drop").IsSelected(), MatchesRegexp("edit.*second commit to edit"), MatchesRegexp("squash.*commit to squash"), + Contains("--- Commits ---"), MatchesRegexp("YOU ARE HERE.*first commit to edit"), Contains("initial commit"), ). SelectPreviousItem(). Press(keys.Commits.MarkCommitAsFixup). Lines( + Contains("--- Pending rebase todos ---"), MatchesRegexp("fixup.*commit to fixup").IsSelected(), MatchesRegexp("drop.*commit to drop"), MatchesRegexp("edit.*second commit to edit"), MatchesRegexp("squash.*commit to squash"), + Contains("--- Commits ---"), MatchesRegexp("YOU ARE HERE.*first commit to edit"), Contains("initial commit"), ). @@ -85,8 +95,10 @@ var Rebase = NewIntegrationTest(NewIntegrationTestArgs{ t.Common().ContinueRebase() }). Lines( + Contains("--- Pending rebase todos ---"), MatchesRegexp("fixup.*commit to fixup").IsSelected(), MatchesRegexp("drop.*commit to drop"), + Contains("--- Commits ---"), MatchesRegexp("YOU ARE HERE.*second commit to edit"), MatchesRegexp("first commit to edit"), Contains("initial commit"), diff --git a/pkg/integration/tests/interactive_rebase/revert_during_rebase_when_stopped_on_edit.go b/pkg/integration/tests/interactive_rebase/revert_during_rebase_when_stopped_on_edit.go index 7d49f06db..5ec043d62 100644 --- a/pkg/integration/tests/interactive_rebase/revert_during_rebase_when_stopped_on_edit.go +++ b/pkg/integration/tests/interactive_rebase/revert_during_rebase_when_stopped_on_edit.go @@ -30,7 +30,9 @@ var RevertDuringRebaseWhenStoppedOnEdit = NewIntegrationTest(NewIntegrationTestA NavigateToLine(Contains("commit 03")). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("commit 04"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 03").IsSelected(), Contains("commit 02"), Contains("commit 01"), @@ -47,7 +49,9 @@ var RevertDuringRebaseWhenStoppedOnEdit = NewIntegrationTest(NewIntegrationTestA Confirm() }). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("commit 04"), + Contains("--- Commits ---"), Contains(`<-- YOU ARE HERE --- Revert "commit 01"`), Contains(`Revert "commit 02"`), Contains("commit 03"), diff --git a/pkg/integration/tests/interactive_rebase/revert_multiple_commits_in_interactive_rebase.go b/pkg/integration/tests/interactive_rebase/revert_multiple_commits_in_interactive_rebase.go index 3d3aa4262..039619d4c 100644 --- a/pkg/integration/tests/interactive_rebase/revert_multiple_commits_in_interactive_rebase.go +++ b/pkg/integration/tests/interactive_rebase/revert_multiple_commits_in_interactive_rebase.go @@ -50,10 +50,13 @@ var RevertMultipleCommitsInInteractiveRebase = NewIntegrationTest(NewIntegration Confirm() }). Lines( + Contains("--- Pending rebase todos ---"), Contains("CI unrelated change 3"), Contains("CI unrelated change 2"), + Contains("--- Pending reverts ---"), Contains("revert").Contains("CI unrelated change 1"), Contains("revert").Contains("CI <-- CONFLICT --- add first line"), + Contains("--- Commits ---"), Contains("CI ◯ add second line"), Contains("CI ◯ add first line"), Contains("CI ◯ unrelated change 1"), @@ -80,8 +83,10 @@ var RevertMultipleCommitsInInteractiveRebase = NewIntegrationTest(NewIntegration t.Views().Commits(). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("CI unrelated change 3"), Contains("pick").Contains("CI unrelated change 2"), + Contains("--- Commits ---"), Contains(`CI ◯ <-- YOU ARE HERE --- Revert "unrelated change 1"`), Contains(`CI ◯ Revert "add first line"`), Contains("CI ◯ add second line"), diff --git a/pkg/integration/tests/interactive_rebase/revert_single_commit_in_interactive_rebase.go b/pkg/integration/tests/interactive_rebase/revert_single_commit_in_interactive_rebase.go index 05849f21c..84975c1d9 100644 --- a/pkg/integration/tests/interactive_rebase/revert_single_commit_in_interactive_rebase.go +++ b/pkg/integration/tests/interactive_rebase/revert_single_commit_in_interactive_rebase.go @@ -45,9 +45,12 @@ var RevertSingleCommitInInteractiveRebase = NewIntegrationTest(NewIntegrationTes Cancel() // stay in commits panel }). Lines( + Contains("--- Pending rebase todos ---"), Contains("CI unrelated change 2"), Contains("CI unrelated change 1"), + Contains("--- Pending reverts ---"), Contains("revert").Contains("CI <-- CONFLICT --- add first line"), + Contains("--- Commits ---"), Contains("CI ◯ add second line"), Contains("CI ◯ add first line").IsSelected(), Contains("CI ◯ add empty file"), @@ -81,8 +84,10 @@ var RevertSingleCommitInInteractiveRebase = NewIntegrationTest(NewIntegrationTes t.Views().Commits(). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("CI unrelated change 2"), Contains("pick").Contains("CI unrelated change 1"), + Contains("--- Commits ---"), Contains(`CI ◯ <-- YOU ARE HERE --- Revert "add first line"`), Contains("CI ◯ add second line"), Contains("CI ◯ add first line"), diff --git a/pkg/integration/tests/interactive_rebase/reword_commit_with_editor_and_fail.go b/pkg/integration/tests/interactive_rebase/reword_commit_with_editor_and_fail.go index 99bac839d..6633f9378 100644 --- a/pkg/integration/tests/interactive_rebase/reword_commit_with_editor_and_fail.go +++ b/pkg/integration/tests/interactive_rebase/reword_commit_with_editor_and_fail.go @@ -33,7 +33,9 @@ var RewordCommitWithEditorAndFail = NewIntegrationTest(NewIntegrationTestArgs{ Confirm() }). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit 03"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 02").IsSelected(), Contains("commit 01"), ) diff --git a/pkg/integration/tests/interactive_rebase/reword_you_are_here_commit.go b/pkg/integration/tests/interactive_rebase/reword_you_are_here_commit.go index d7763c573..ee0ff81c4 100644 --- a/pkg/integration/tests/interactive_rebase/reword_you_are_here_commit.go +++ b/pkg/integration/tests/interactive_rebase/reword_you_are_here_commit.go @@ -25,7 +25,9 @@ var RewordYouAreHereCommit = NewIntegrationTest(NewIntegrationTestArgs{ NavigateToLine(Contains("commit 02")). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit 03"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 02").IsSelected(), Contains("commit 01"), ). @@ -39,7 +41,9 @@ var RewordYouAreHereCommit = NewIntegrationTest(NewIntegrationTestArgs{ Confirm() }). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit 03"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- renamed 02").IsSelected(), Contains("commit 01"), ) diff --git a/pkg/integration/tests/interactive_rebase/reword_you_are_here_commit_with_editor.go b/pkg/integration/tests/interactive_rebase/reword_you_are_here_commit_with_editor.go index 4d654e1dd..3ad86bde8 100644 --- a/pkg/integration/tests/interactive_rebase/reword_you_are_here_commit_with_editor.go +++ b/pkg/integration/tests/interactive_rebase/reword_you_are_here_commit_with_editor.go @@ -27,7 +27,9 @@ var RewordYouAreHereCommitWithEditor = NewIntegrationTest(NewIntegrationTestArgs NavigateToLine(Contains("commit 02")). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit 03"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit 02").IsSelected(), Contains("commit 01"), ). @@ -39,7 +41,9 @@ var RewordYouAreHereCommitWithEditor = NewIntegrationTest(NewIntegrationTestArgs Confirm() }). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit 03"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- renamed 02").IsSelected(), Contains("commit 01"), ) diff --git a/pkg/integration/tests/interactive_rebase/shared.go b/pkg/integration/tests/interactive_rebase/shared.go index d2f75622f..ea6626fd6 100644 --- a/pkg/integration/tests/interactive_rebase/shared.go +++ b/pkg/integration/tests/interactive_rebase/shared.go @@ -9,8 +9,10 @@ func handleConflictsFromSwap(t *TestDriver, expectedCommand string) { t.Views().Commits(). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("commit two"), Contains(expectedCommand).Contains("<-- CONFLICT --- commit three"), + Contains("--- Commits ---"), Contains("commit one"), ) diff --git a/pkg/integration/tests/interactive_rebase/show_exec_todos.go b/pkg/integration/tests/interactive_rebase/show_exec_todos.go index 82f459924..55a9bead0 100644 --- a/pkg/integration/tests/interactive_rebase/show_exec_todos.go +++ b/pkg/integration/tests/interactive_rebase/show_exec_todos.go @@ -31,8 +31,10 @@ var ShowExecTodos = NewIntegrationTest(NewIntegrationTestArgs{ t.ExpectPopup().Alert().Title(Equals("Error")).Content(Contains("Rebasing (2/4)Executing: false")).Confirm() }). Lines( + Contains("--- Pending rebase todos ---"), Contains("exec").Contains("false"), Contains("pick").Contains("CI commit 03"), + Contains("--- Commits ---"), Contains("CI ◯ <-- YOU ARE HERE --- commit 02"), Contains("CI ◯ commit 01"), ). @@ -41,6 +43,8 @@ var ShowExecTodos = NewIntegrationTest(NewIntegrationTestArgs{ t.ExpectPopup().Alert().Title(Equals("Error")).Content(Contains("exit status 1")).Confirm() }). Lines( + Contains("--- Pending rebase todos ---"), + Contains("--- Commits ---"), Contains("CI ◯ <-- YOU ARE HERE --- commit 03"), Contains("CI ◯ commit 02"), Contains("CI ◯ commit 01"), diff --git a/pkg/integration/tests/interactive_rebase/swap_in_rebase_with_conflict.go b/pkg/integration/tests/interactive_rebase/swap_in_rebase_with_conflict.go index f330fd5cf..9eb045909 100644 --- a/pkg/integration/tests/interactive_rebase/swap_in_rebase_with_conflict.go +++ b/pkg/integration/tests/interactive_rebase/swap_in_rebase_with_conflict.go @@ -29,15 +29,19 @@ var SwapInRebaseWithConflict = NewIntegrationTest(NewIntegrationTestArgs{ NavigateToLine(Contains("commit one")). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit three"), Contains("commit two"), + Contains("--- Commits ---"), Contains("YOU ARE HERE").Contains("commit one").IsSelected(), ). SelectPreviousItem(). Press(keys.Commits.MoveUpCommit). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit two").IsSelected(), Contains("commit three"), + Contains("--- Commits ---"), Contains("YOU ARE HERE").Contains("commit one"), ). Tap(func() { diff --git a/pkg/integration/tests/interactive_rebase/swap_in_rebase_with_conflict_and_edit.go b/pkg/integration/tests/interactive_rebase/swap_in_rebase_with_conflict_and_edit.go index 662a8e8cf..23f796fd9 100644 --- a/pkg/integration/tests/interactive_rebase/swap_in_rebase_with_conflict_and_edit.go +++ b/pkg/integration/tests/interactive_rebase/swap_in_rebase_with_conflict_and_edit.go @@ -29,15 +29,19 @@ var SwapInRebaseWithConflictAndEdit = NewIntegrationTest(NewIntegrationTestArgs{ NavigateToLine(Contains("commit one")). Press(keys.Universal.Edit). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit three"), Contains("commit two"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit one").IsSelected(), ). NavigateToLine(Contains("commit two")). Press(keys.Commits.MoveUpCommit). Lines( + Contains("--- Pending rebase todos ---"), Contains("commit two").IsSelected(), Contains("commit three"), + Contains("--- Commits ---"), Contains("<-- YOU ARE HERE --- commit one"), ). NavigateToLine(Contains("commit three")). diff --git a/pkg/integration/tests/interactive_rebase/view_files_of_todo_entries.go b/pkg/integration/tests/interactive_rebase/view_files_of_todo_entries.go index 4140e1a0f..a500ba210 100644 --- a/pkg/integration/tests/interactive_rebase/view_files_of_todo_entries.go +++ b/pkg/integration/tests/interactive_rebase/view_files_of_todo_entries.go @@ -28,9 +28,11 @@ var ViewFilesOfTodoEntries = NewIntegrationTest(NewIntegrationTestArgs{ Focus(). Press(keys.Commits.StartInteractiveRebase). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("CI commit 03").IsSelected(), Contains("update-ref").Contains("branch1"), Contains("pick").Contains("CI commit 02"), + Contains("--- Commits ---"), Contains("CI <-- YOU ARE HERE --- commit 01"), ). Press(keys.Universal.GoInto) diff --git a/pkg/integration/tests/sync/pull_rebase_interactive_conflict.go b/pkg/integration/tests/sync/pull_rebase_interactive_conflict.go index 7f1e7721a..2bb39e14f 100644 --- a/pkg/integration/tests/sync/pull_rebase_interactive_conflict.go +++ b/pkg/integration/tests/sync/pull_rebase_interactive_conflict.go @@ -48,8 +48,10 @@ var PullRebaseInteractiveConflict = NewIntegrationTest(NewIntegrationTestArgs{ t.Views().Commits(). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("five"), Contains("pick").Contains("CONFLICT").Contains("four"), + Contains("--- Commits ---"), Contains("three"), Contains("two"), Contains("one"), diff --git a/pkg/integration/tests/sync/pull_rebase_interactive_conflict_drop.go b/pkg/integration/tests/sync/pull_rebase_interactive_conflict_drop.go index d9dd51c45..ad7a4806f 100644 --- a/pkg/integration/tests/sync/pull_rebase_interactive_conflict_drop.go +++ b/pkg/integration/tests/sync/pull_rebase_interactive_conflict_drop.go @@ -49,16 +49,20 @@ var PullRebaseInteractiveConflictDrop = NewIntegrationTest(NewIntegrationTestArg t.Views().Commits(). Focus(). Lines( + Contains("--- Pending rebase todos ---"), Contains("pick").Contains("five").IsSelected(), Contains("pick").Contains("CONFLICT").Contains("four"), + Contains("--- Commits ---"), Contains("three"), Contains("two"), Contains("one"), ). Press(keys.Universal.Remove). Lines( + Contains("--- Pending rebase todos ---"), Contains("drop").Contains("five").IsSelected(), Contains("pick").Contains("CONFLICT").Contains("four"), + Contains("--- Commits ---"), Contains("three"), Contains("two"), Contains("one"),