summaryrefslogtreecommitdiffstats
path: root/pkg/gui/presentation
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2022-01-24 19:42:40 +1100
committerJesse Duffield <jessedduffield@gmail.com>2022-01-26 17:20:58 +1100
commitebbdf829e793eb0bbac819eef4bffacf0bce48fb (patch)
tree475b224608f2dc026ea962c4967099ca599be7d0 /pkg/gui/presentation
parent5e6e1617aa9a97b6f13bfeddc43f27844a6468cd (diff)
fix panic on rebase
Diffstat (limited to 'pkg/gui/presentation')
-rw-r--r--pkg/gui/presentation/commits.go5
-rw-r--r--pkg/gui/presentation/commits_test.go62
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)
+ })
+ }
}
}