diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2022-01-24 19:42:40 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2022-01-26 17:20:58 +1100 |
commit | ebbdf829e793eb0bbac819eef4bffacf0bce48fb (patch) | |
tree | 475b224608f2dc026ea962c4967099ca599be7d0 /pkg/gui/presentation | |
parent | 5e6e1617aa9a97b6f13bfeddc43f27844a6468cd (diff) |
fix panic on rebase
Diffstat (limited to 'pkg/gui/presentation')
-rw-r--r-- | pkg/gui/presentation/commits.go | 5 | ||||
-rw-r--r-- | pkg/gui/presentation/commits_test.go | 62 |
2 files changed, 47 insertions, 20 deletions
diff --git a/pkg/gui/presentation/commits.go b/pkg/gui/presentation/commits.go index 59feaba78..2bc9f475c 100644 --- a/pkg/gui/presentation/commits.go +++ b/pkg/gui/presentation/commits.go @@ -50,10 +50,9 @@ func GetCommitListDisplayStrings( return nil } - // this is where my non-TODO commits begin - rebaseOffset := indexOfFirstNonTODOCommit(commits) - end := utils.Min(startIdx+length, len(commits)) + // this is where my non-TODO commits begin + rebaseOffset := utils.Min(indexOfFirstNonTODOCommit(commits), end) filteredCommits := commits[startIdx:end] diff --git a/pkg/gui/presentation/commits_test.go b/pkg/gui/presentation/commits_test.go index 604a5ef5f..b7fd23468 100644 --- a/pkg/gui/presentation/commits_test.go +++ b/pkg/gui/presentation/commits_test.go @@ -34,6 +34,7 @@ func TestGetCommitListDisplayStrings(t *testing.T) { showGraph bool bisectInfo *git_commands.BisectInfo expected string + focus bool }{ { testName: "no commits", @@ -174,28 +175,55 @@ func TestGetCommitListDisplayStrings(t *testing.T) { sha5 ◯ commit5 `), }, + { + testName: "only TODO commits except last", + commits: []*models.Commit{ + {Name: "commit1", Sha: "sha1", Parents: []string{"sha2", "sha3"}, Action: "pick"}, + {Name: "commit2", Sha: "sha2", Parents: []string{"sha3"}, Action: "pick"}, + {Name: "commit3", Sha: "sha3", Parents: []string{"sha4"}, Action: "pick"}, + {Name: "commit4", Sha: "sha4", Parents: []string{"sha5"}, Action: "pick"}, + {Name: "commit5", Sha: "sha5", Parents: []string{"sha7"}}, + }, + startIdx: 0, + length: 2, + showGraph: true, + bisectInfo: git_commands.NewNullBisectInfo(), + expected: formatExpected(` + sha1 pick commit1 + sha2 pick commit2 + `), + }, + } + + focusing := false + for _, scenario := range scenarios { + if scenario.focus { + focusing = true + } } for _, s := range scenarios { s := s - t.Run(s.testName, func(t *testing.T) { - result := GetCommitListDisplayStrings( - s.commits, - s.fullDescription, - s.cherryPickedCommitShaMap, - s.diffName, - s.parseEmoji, - s.selectedCommitSha, - s.startIdx, - s.length, - s.showGraph, - s.bisectInfo, - ) + if !focusing || s.focus { + t.Run(s.testName, func(t *testing.T) { + result := GetCommitListDisplayStrings( + s.commits, + s.fullDescription, + s.cherryPickedCommitShaMap, + s.diffName, + s.parseEmoji, + s.selectedCommitSha, + s.startIdx, + s.length, + s.showGraph, + s.bisectInfo, + ) - renderedResult := utils.RenderDisplayStrings(result) - t.Logf("\n%s", renderedResult) + renderedResult := utils.RenderDisplayStrings(result) + t.Logf("\n%s", renderedResult) - assert.EqualValues(t, s.expected, renderedResult) - }) + assert.EqualValues(t, s.expected, renderedResult) + }) + } } } |