Skip to content
Snippets Groups Projects
config_test.go 1.26 KiB
package runner

import (
	"testing"

	"github.com/stretchr/testify/assert"
	"github.com/stretchr/testify/require"
	"orus.io/cloudcrane/beaver/testutils"
)

func TestConfig(t *testing.T) {
	logger := testutils.GetLogger(t)
	configDir := "fixtures/"
	testNS := "ns1"
	config, err := NewConfig(logger, configDir, testNS)
	require.NoError(t, err)
	// first config.spec.variables entry name should be VAULT_KV in our test file
	assert.Equal(t, "VAULT_KV", config.Spec.Variables[0].Name)
	// the postgres chart should have been expanded with our variables
	assert.Equal(
		t,
		`config:
  datasource:
    password: <path:cnpp.k8s.cloudcrane.io/data/ns1/postgres#password>
fullnameoverride: pg-exporter-ns1
`,
		config.Spec.Charts.Helm["postgres"].Values,
	)

	// verify ytt entries
	assert.Equal(t, "cnpp.k8s.cloudcrane.io", config.Spec.Charts.Ytt["odoo"].Values[0].Value)
	assert.Equal(t, testNS, config.Spec.Charts.Ytt["odoo"].Values[1].Value)

	// yaml support should let toto entry use DEFAULT_VALUES defined in odoo
	assert.Equal(t, "cnpp.k8s.cloudcrane.io", config.Spec.Charts.Ytt["toto"].Values[0].Value)
	assert.Equal(t, testNS, config.Spec.Charts.Ytt["toto"].Values[1].Value)

	// verify variables overwrite
	assert.Equal(t, "admin", config.Spec.Charts.Ytt["odoo"].Values[2].Value)
}