pushsecret_controller_template_test.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package pushsecret
  2. import (
  3. "context"
  4. "testing"
  5. corev1 "k8s.io/api/core/v1"
  6. esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
  7. esv1alpha1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1alpha1"
  8. )
  9. func TestApplyTemplatePreservesSourceSecretTypeWhenTemplateTypeUnset(t *testing.T) {
  10. r := &Reconciler{}
  11. secret := &corev1.Secret{
  12. Type: corev1.SecretTypeOpaque,
  13. Data: map[string][]byte{
  14. "key": []byte("value"),
  15. },
  16. }
  17. ps := &esv1alpha1.PushSecret{
  18. Spec: esv1alpha1.PushSecretSpec{
  19. Template: &esv1.ExternalSecretTemplate{
  20. EngineVersion: esv1.TemplateEngineV2,
  21. Data: map[string]string{
  22. "key": "{{ .key | upper }}",
  23. },
  24. },
  25. },
  26. }
  27. if err := r.applyTemplate(context.Background(), ps, secret); err != nil {
  28. t.Fatalf("applyTemplate() error = %v", err)
  29. }
  30. if secret.Type != corev1.SecretTypeOpaque {
  31. t.Fatalf("applyTemplate() changed secret type to %q", secret.Type)
  32. }
  33. if got := string(secret.Data["key"]); got != "VALUE" {
  34. t.Fatalf("applyTemplate() templated value = %q, want %q", got, "VALUE")
  35. }
  36. }