Skip to content

Commit 940edd4

Browse files
committed
[installer] Allow composed render funcs to output no object
1 parent b45182d commit 940edd4

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

install/installer/pkg/common/render.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ func CompositeRenderFunc(f ...RenderFunc) RenderFunc {
3131
if err != nil {
3232
return nil, err
3333
}
34+
if len(obj) == 0 {
35+
// the RenderFunc chose not to render anything, possibly based on config it received
36+
continue
37+
}
3438
res = append(res, obj...)
3539
}
3640
return res, nil
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// Copyright (c) 2022 Gitpod GmbH. All rights reserved.
2+
// Licensed under the MIT License. See License-MIT.txt in the project root for license information.
3+
4+
package common
5+
6+
import (
7+
"github.com/gitpod-io/gitpod/installer/pkg/config/v1"
8+
"github.com/gitpod-io/gitpod/installer/pkg/config/versions"
9+
"github.com/stretchr/testify/require"
10+
"k8s.io/apimachinery/pkg/runtime"
11+
"testing"
12+
)
13+
14+
func TestCompositeRenderFunc_NilObjectsNilError(t *testing.T) {
15+
f := CompositeRenderFunc(
16+
func(cfg *RenderContext) ([]runtime.Object, error) {
17+
return nil, nil
18+
})
19+
20+
ctx, err := NewRenderContext(config.Config{}, versions.Manifest{}, "test_namespace")
21+
require.NoError(t, err)
22+
23+
objects, err := f(ctx)
24+
require.NoError(t, err)
25+
require.Len(t, objects, 0)
26+
}

0 commit comments

Comments
 (0)