diff --git a/pkg/gui/presentation/remote_branches.go b/pkg/gui/presentation/remote_branches.go index 55e4bc1137e..76980217cc2 100644 --- a/pkg/gui/presentation/remote_branches.go +++ b/pkg/gui/presentation/remote_branches.go @@ -8,9 +8,12 @@ import ( ) func GetRemoteBranchListDisplayStrings(branches []*models.RemoteBranch, diffName string) [][]string { - return lo.Map(branches, func(branch *models.RemoteBranch, _ int) []string { + return lo.FilterMap(branches, func(branch *models.RemoteBranch, _ int) ([]string, bool) { + if branch == nil { + return nil, false + } diffed := branch.FullName() == diffName - return getRemoteBranchDisplayStrings(branch, diffed) + return getRemoteBranchDisplayStrings(branch, diffed), true }) } diff --git a/pkg/gui/presentation/remote_branches_test.go b/pkg/gui/presentation/remote_branches_test.go new file mode 100644 index 00000000000..57143951039 --- /dev/null +++ b/pkg/gui/presentation/remote_branches_test.go @@ -0,0 +1,18 @@ +package presentation + +import ( + "testing" + + "github.com/jesseduffield/lazygit/pkg/commands/models" + "github.com/stretchr/testify/assert" +) + +func TestGetRemoteBranchListDisplayStrings_NilBranch(t *testing.T) { + branch := &models.RemoteBranch{Name: "main", RemoteName: "origin"} + branches := []*models.RemoteBranch{nil, branch, nil} + + result := GetRemoteBranchListDisplayStrings(branches, "") + + // nil entries must be skipped; only the valid branch produces a row + assert.Len(t, result, 1) +}