Path: blob/main/install/installer/pkg/components/usage/objects_test.go
2501 views
// Copyright (c) 2022 Gitpod GmbH. All rights reserved.1/// Licensed under the GNU Affero General Public License (AGPL).2// See License.AGPL.txt in the project root for license information.34package usage56import (7"testing"89"github.com/stretchr/testify/require"1011"github.com/gitpod-io/gitpod/installer/pkg/common"12config "github.com/gitpod-io/gitpod/installer/pkg/config/v1"13"github.com/gitpod-io/gitpod/installer/pkg/config/v1/experimental"14"github.com/gitpod-io/gitpod/installer/pkg/config/versions"15)1617func TestObjects_NotRenderedByDefault(t *testing.T) {18ctx, err := common.NewRenderContext(config.Config{}, versions.Manifest{}, "test-namespace")19require.NoError(t, err)2021objects, err := Objects(ctx)22require.NoError(t, err)23require.Empty(t, objects, "no objects should be rendered with default config")24}2526func TestObjects_RenderedWhenExperimentalConfigSet(t *testing.T) {27ctx := renderContextWithUsageEnabled(t)2829objects, err := Objects(ctx)30require.NoError(t, err)31require.NotEmpty(t, objects, "must render objects because experimental config is specified")32require.Len(t, objects, 7, "should render expected k8s objects")33}3435func renderContextWithUsageConfig(t *testing.T, usage *experimental.UsageConfig) *common.RenderContext {36ctx, err := common.NewRenderContext(config.Config{37Domain: "test.domain.everything.awesome.is",38Experimental: &experimental.Config{39WebApp: &experimental.WebAppConfig{40Usage: usage,41Server: &experimental.ServerConfig{StripeSecret: "stripe-secret-name"},42},43},44Database: config.Database{45CloudSQL: &config.DatabaseCloudSQL{46ServiceAccount: config.ObjectRef{47Name: "gcp-db-creds-service-account-name",48},49},50},51}, versions.Manifest{52Components: versions.Components{53Usage: versions.Versioned{54Version: "commit-test-latest",55},56ServiceWaiter: versions.Versioned{57Version: "commit-test-latest",58},59},60}, "test-namespace")61require.NoError(t, err)6263return ctx64}6566func renderContextWithUsageEnabled(t *testing.T) *common.RenderContext {67return renderContextWithUsageConfig(t, &experimental.UsageConfig{Enabled: true})68}6970func renderContextWithStripeSecretSet(t *testing.T) *common.RenderContext {71ctx := renderContextWithUsageEnabled(t)7273_ = ctx.WithExperimental(func(cfg *experimental.Config) error {74cfg.WebApp.Server = &experimental.ServerConfig{StripeSecret: "some-stripe-secret"}75return nil76})7778return ctx79}808182