mirror of
https://github.com/gitpod-io/gitpod.git
synced 2025-12-08 17:36:30 +00:00
81 lines
2.4 KiB
Go
81 lines
2.4 KiB
Go
// Copyright (c) 2022 Gitpod GmbH. All rights reserved.
|
|
/// Licensed under the GNU Affero General Public License (AGPL).
|
|
// See License.AGPL.txt in the project root for license information.
|
|
|
|
package usage
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/gitpod-io/gitpod/installer/pkg/common"
|
|
config "github.com/gitpod-io/gitpod/installer/pkg/config/v1"
|
|
"github.com/gitpod-io/gitpod/installer/pkg/config/v1/experimental"
|
|
"github.com/gitpod-io/gitpod/installer/pkg/config/versions"
|
|
)
|
|
|
|
func TestObjects_NotRenderedByDefault(t *testing.T) {
|
|
ctx, err := common.NewRenderContext(config.Config{}, versions.Manifest{}, "test-namespace")
|
|
require.NoError(t, err)
|
|
|
|
objects, err := Objects(ctx)
|
|
require.NoError(t, err)
|
|
require.Empty(t, objects, "no objects should be rendered with default config")
|
|
}
|
|
|
|
func TestObjects_RenderedWhenExperimentalConfigSet(t *testing.T) {
|
|
ctx := renderContextWithUsageEnabled(t)
|
|
|
|
objects, err := Objects(ctx)
|
|
require.NoError(t, err)
|
|
require.NotEmpty(t, objects, "must render objects because experimental config is specified")
|
|
require.Len(t, objects, 7, "should render expected k8s objects")
|
|
}
|
|
|
|
func renderContextWithUsageConfig(t *testing.T, usage *experimental.UsageConfig) *common.RenderContext {
|
|
ctx, err := common.NewRenderContext(config.Config{
|
|
Domain: "test.domain.everything.awesome.is",
|
|
Experimental: &experimental.Config{
|
|
WebApp: &experimental.WebAppConfig{
|
|
Usage: usage,
|
|
Server: &experimental.ServerConfig{StripeSecret: "stripe-secret-name"},
|
|
},
|
|
},
|
|
Database: config.Database{
|
|
CloudSQL: &config.DatabaseCloudSQL{
|
|
ServiceAccount: config.ObjectRef{
|
|
Name: "gcp-db-creds-service-account-name",
|
|
},
|
|
},
|
|
},
|
|
}, versions.Manifest{
|
|
Components: versions.Components{
|
|
Usage: versions.Versioned{
|
|
Version: "commit-test-latest",
|
|
},
|
|
ServiceWaiter: versions.Versioned{
|
|
Version: "commit-test-latest",
|
|
},
|
|
},
|
|
}, "test-namespace")
|
|
require.NoError(t, err)
|
|
|
|
return ctx
|
|
}
|
|
|
|
func renderContextWithUsageEnabled(t *testing.T) *common.RenderContext {
|
|
return renderContextWithUsageConfig(t, &experimental.UsageConfig{Enabled: true})
|
|
}
|
|
|
|
func renderContextWithStripeSecretSet(t *testing.T) *common.RenderContext {
|
|
ctx := renderContextWithUsageEnabled(t)
|
|
|
|
_ = ctx.WithExperimental(func(cfg *experimental.Config) error {
|
|
cfg.WebApp.Server = &experimental.ServerConfig{StripeSecret: "some-stripe-secret"}
|
|
return nil
|
|
})
|
|
|
|
return ctx
|
|
}
|