Skip to content

Commit

Permalink
Add tests for object rendering
Browse files Browse the repository at this point in the history
Test that the objects are/are not rendered when the `disableMigration` config
flag is set.
  • Loading branch information
Andrew Farries committed May 5, 2022
1 parent 1a62c90 commit bc9692a
Show file tree
Hide file tree
Showing 3 changed files with 189 additions and 0 deletions.
56 changes: 56 additions & 0 deletions install/installer/pkg/components/database/incluster/render_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
// Copyright (c) 2021 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 incluster

import (
"testing"

"github.com/gitpod-io/gitpod/installer/pkg/common"
"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"
"github.com/stretchr/testify/require"
"k8s.io/utils/pointer"
)

func TestConfigmap_IsNotRenderedWhenDisableMigrationIsTrue(t *testing.T) {
ctx := renderContextWithDisableMigration(t, true)

objects, err := configmap(ctx)
require.NoError(t, err)

require.Len(t, objects, 0, "must not render any objects")
}

func TestConfigmap_IsRenderedWhenDisableMigrationIsFalse(t *testing.T) {
ctx := renderContextWithDisableMigration(t, false)

objects, err := configmap(ctx)
require.NoError(t, err)

require.Len(t, objects, 1, "must render one object")
}

func renderContextWithDisableMigration(t *testing.T, disableMigration bool) *common.RenderContext {
ctx, err := common.NewRenderContext(config.Config{
Database: config.Database{
InCluster: pointer.Bool(true),
},
Experimental: &experimental.Config{
WebApp: &experimental.WebAppConfig{
DisableMigration: disableMigration,
},
},
}, versions.Manifest{
Components: versions.Components{
ServiceWaiter: versions.Versioned{
Version: "arbitary",
},
},
}, "test-namespace")
require.NoError(t, err)

return ctx
}
74 changes: 74 additions & 0 deletions install/installer/pkg/components/database/init/render_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
// Copyright (c) 2021 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 init

import (
"testing"

"github.com/gitpod-io/gitpod/installer/pkg/common"
"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"
"github.com/stretchr/testify/require"
"k8s.io/utils/pointer"
)

func TestJob_IsNotRenderedWhenDisableMigrationIsTrue(t *testing.T) {
ctx := renderContextWithDisableMigration(t, true)

objects, err := job(ctx)
require.NoError(t, err)

require.Len(t, objects, 0, "must not render any objects")
}

func TestJob_IsRenderedWhenDisableMigrationIsFalse(t *testing.T) {
ctx := renderContextWithDisableMigration(t, false)

objects, err := job(ctx)
require.NoError(t, err)

require.Len(t, objects, 1, "must render one object")
}

func TestConfigmap_IsNotRenderedWhenDisableMigrationIsTrue(t *testing.T) {
ctx := renderContextWithDisableMigration(t, true)

objects, err := configmap(ctx)
require.NoError(t, err)

require.Len(t, objects, 0, "must not render any objects")
}

func TestConfigmap_IsRenderedWhenDisableMigrationIsFalse(t *testing.T) {
ctx := renderContextWithDisableMigration(t, false)

objects, err := configmap(ctx)
require.NoError(t, err)

require.Len(t, objects, 1, "must render one object")
}

func renderContextWithDisableMigration(t *testing.T, disableMigration bool) *common.RenderContext {
ctx, err := common.NewRenderContext(config.Config{
Database: config.Database{
InCluster: pointer.Bool(true),
},
Experimental: &experimental.Config{
WebApp: &experimental.WebAppConfig{
DisableMigration: disableMigration,
},
},
}, versions.Manifest{
Components: versions.Components{
ServiceWaiter: versions.Versioned{
Version: "arbitary",
},
},
}, "test-namespace")
require.NoError(t, err)

return ctx
}
59 changes: 59 additions & 0 deletions install/installer/pkg/components/migrations/render_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
// Copyright (c) 2021 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 migrations

import (
"testing"

"github.com/gitpod-io/gitpod/installer/pkg/common"
"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"
"github.com/stretchr/testify/require"
"k8s.io/utils/pointer"
)

func TestJob_IsNotRenderedWhenDisableMigrationIsTrue(t *testing.T) {
ctx := renderContextWithDisableMigration(t, true)

objects, err := job(ctx)
require.NoError(t, err)

require.Len(t, objects, 0, "must not render any objects")
}

func TestJob_IsRenderedWhenDisableMigrationIsFalse(t *testing.T) {
ctx := renderContextWithDisableMigration(t, false)

objects, err := job(ctx)
require.NoError(t, err)

require.Len(t, objects, 1, "must render one object")
}

func renderContextWithDisableMigration(t *testing.T, disableMigration bool) *common.RenderContext {
ctx, err := common.NewRenderContext(config.Config{
Database: config.Database{
InCluster: pointer.Bool(true),
},
Experimental: &experimental.Config{
WebApp: &experimental.WebAppConfig{
DisableMigration: disableMigration,
},
},
}, versions.Manifest{
Components: versions.Components{
ServiceWaiter: versions.Versioned{
Version: "arbitary",
},
DBMigrations: versions.Versioned{
Version: "arbitary",
},
},
}, "test-namespace")
require.NoError(t, err)

return ctx
}

0 comments on commit bc9692a

Please sign in to comment.