adds a unit test for the TestKubernetes_CreateSecrets function where secrets are created in Kubernetes from a KomposeObject, and secrets are taken from a CNAME file. Also, a newSecrets function is added to generate secrets from the provided configuration

Signed-off-by: jose luis <2064537+sosan@users.noreply.github.com>
This commit is contained in:
jose luis 2024-02-07 18:29:33 +01:00
parent b544c17472
commit b095982ddf
No known key found for this signature in database
GPG Key ID: 6D23FAD11F88081A

View File

@ -1147,15 +1147,23 @@ func TestNamespaceGenerationBlank(t *testing.T) {
} }
func TestKubernetes_CreateSecrets(t *testing.T) { func TestKubernetes_CreateSecrets(t *testing.T) {
// hardcoded var komposeDefaultObject []kobject.KomposeObject
komposeDefaultObject := kobject.KomposeObject{ dataSecrets := []SecretsConfig{
ServiceConfigs: map[string]kobject.ServiceConfig{"app": newServiceConfig()}, {
Secrets: types.Secrets{ nameSecretConfig: "config-ini",
"config-ini": types.SecretConfig{ nameSecret: "debug-config-ini",
Name: "debug-config-ini", pathFile: "../../../docs/CNAME",
File: "../../../docs/CNAME",
},
}, },
{
nameSecretConfig: "new-config-init",
nameSecret: "new-debug-config-ini",
pathFile: "../../../docs/CNAME",
},
}
for i := 0; i < len(dataSecrets); i++ {
komposeDefaultObject = append(komposeDefaultObject, newKomposeObject())
komposeDefaultObject[i].Secrets = newSecrets(dataSecrets[i])
} }
type fields struct { type fields struct {
@ -1172,11 +1180,10 @@ func TestKubernetes_CreateSecrets(t *testing.T) {
want []*api.Secret want []*api.Secret
wantErr bool wantErr bool
}{ }{
// TODO: Add test cases.
{ {
name: "CreateSecrets from default KomposeObject amd hardcoded secrets", name: "CreateSecrets from default KomposeObject and secrets taken from CNAME file",
args: args{ args: args{
komposeObject: komposeDefaultObject, komposeObject: komposeDefaultObject[0],
}, },
want: []*api.Secret{ want: []*api.Secret{
{ {
@ -1185,8 +1192,28 @@ func TestKubernetes_CreateSecrets(t *testing.T) {
APIVersion: "v1", APIVersion: "v1",
}, },
ObjectMeta: metav1.ObjectMeta{ ObjectMeta: metav1.ObjectMeta{
Name: FormatResourceName("config-ini"), Name: FormatResourceName(dataSecrets[0].nameSecretConfig),
Labels: transformer.ConfigLabels("config-ini"), Labels: transformer.ConfigLabels(dataSecrets[0].nameSecretConfig),
},
Type: api.SecretTypeOpaque,
Data: map[string][]byte{"CNAME": []byte("kompose.io")},
},
},
},
{
name: "CreateSecrets from default KomposeObject and secrets taken from CNAME file",
args: args{
komposeObject: komposeDefaultObject[1],
},
want: []*api.Secret{
{
TypeMeta: metav1.TypeMeta{
Kind: "Secret",
APIVersion: "v1",
},
ObjectMeta: metav1.ObjectMeta{
Name: FormatResourceName(dataSecrets[1].nameSecretConfig),
Labels: transformer.ConfigLabels(dataSecrets[1].nameSecretConfig),
}, },
Type: api.SecretTypeOpaque, Type: api.SecretTypeOpaque,
Data: map[string][]byte{"CNAME": []byte("kompose.io")}, Data: map[string][]byte{"CNAME": []byte("kompose.io")},
@ -1210,3 +1237,19 @@ func TestKubernetes_CreateSecrets(t *testing.T) {
}) })
} }
} }
type SecretsConfig struct {
nameSecretConfig string
nameSecret string
pathFile string
}
// generate
func newSecrets(stringsSecretConfig SecretsConfig) types.Secrets {
return types.Secrets{
stringsSecretConfig.nameSecretConfig: types.SecretConfig{
Name: stringsSecretConfig.nameSecret,
File: stringsSecretConfig.pathFile,
},
}
}