Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/install/installer/pkg/components/usage/objects_test.go
2501 views
1
// Copyright (c) 2022 Gitpod GmbH. All rights reserved.
2
/// Licensed under the GNU Affero General Public License (AGPL).
3
// See License.AGPL.txt in the project root for license information.
4
5
package usage
6
7
import (
8
"testing"
9
10
"github.com/stretchr/testify/require"
11
12
"github.com/gitpod-io/gitpod/installer/pkg/common"
13
config "github.com/gitpod-io/gitpod/installer/pkg/config/v1"
14
"github.com/gitpod-io/gitpod/installer/pkg/config/v1/experimental"
15
"github.com/gitpod-io/gitpod/installer/pkg/config/versions"
16
)
17
18
func TestObjects_NotRenderedByDefault(t *testing.T) {
19
ctx, err := common.NewRenderContext(config.Config{}, versions.Manifest{}, "test-namespace")
20
require.NoError(t, err)
21
22
objects, err := Objects(ctx)
23
require.NoError(t, err)
24
require.Empty(t, objects, "no objects should be rendered with default config")
25
}
26
27
func TestObjects_RenderedWhenExperimentalConfigSet(t *testing.T) {
28
ctx := renderContextWithUsageEnabled(t)
29
30
objects, err := Objects(ctx)
31
require.NoError(t, err)
32
require.NotEmpty(t, objects, "must render objects because experimental config is specified")
33
require.Len(t, objects, 7, "should render expected k8s objects")
34
}
35
36
func renderContextWithUsageConfig(t *testing.T, usage *experimental.UsageConfig) *common.RenderContext {
37
ctx, err := common.NewRenderContext(config.Config{
38
Domain: "test.domain.everything.awesome.is",
39
Experimental: &experimental.Config{
40
WebApp: &experimental.WebAppConfig{
41
Usage: usage,
42
Server: &experimental.ServerConfig{StripeSecret: "stripe-secret-name"},
43
},
44
},
45
Database: config.Database{
46
CloudSQL: &config.DatabaseCloudSQL{
47
ServiceAccount: config.ObjectRef{
48
Name: "gcp-db-creds-service-account-name",
49
},
50
},
51
},
52
}, versions.Manifest{
53
Components: versions.Components{
54
Usage: versions.Versioned{
55
Version: "commit-test-latest",
56
},
57
ServiceWaiter: versions.Versioned{
58
Version: "commit-test-latest",
59
},
60
},
61
}, "test-namespace")
62
require.NoError(t, err)
63
64
return ctx
65
}
66
67
func renderContextWithUsageEnabled(t *testing.T) *common.RenderContext {
68
return renderContextWithUsageConfig(t, &experimental.UsageConfig{Enabled: true})
69
}
70
71
func renderContextWithStripeSecretSet(t *testing.T) *common.RenderContext {
72
ctx := renderContextWithUsageEnabled(t)
73
74
_ = ctx.WithExperimental(func(cfg *experimental.Config) error {
75
cfg.WebApp.Server = &experimental.ServerConfig{StripeSecret: "some-stripe-secret"}
76
return nil
77
})
78
79
return ctx
80
}
81
82