provider_test.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package aws
  2. import (
  3. "context"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. clientfake "sigs.k8s.io/controller-runtime/pkg/client/fake"
  7. esv1alpha1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1alpha1"
  8. )
  9. func TestProvider(t *testing.T) {
  10. cl := clientfake.NewClientBuilder().Build()
  11. p := Provider{}
  12. tbl := []struct {
  13. test string
  14. store esv1alpha1.GenericStore
  15. expErr bool
  16. }{
  17. {
  18. test: "should not create provider due to nil store",
  19. store: nil,
  20. expErr: true,
  21. },
  22. {
  23. test: "should not create provider due to missing provider",
  24. expErr: true,
  25. store: &esv1alpha1.SecretStore{
  26. Spec: esv1alpha1.SecretStoreSpec{},
  27. },
  28. },
  29. {
  30. test: "should not create provider due to missing provider field",
  31. expErr: true,
  32. store: &esv1alpha1.SecretStore{
  33. Spec: esv1alpha1.SecretStoreSpec{
  34. Provider: &esv1alpha1.SecretStoreProvider{},
  35. },
  36. },
  37. },
  38. {
  39. test: "should create provider",
  40. expErr: false,
  41. store: &esv1alpha1.SecretStore{
  42. Spec: esv1alpha1.SecretStoreSpec{
  43. Provider: &esv1alpha1.SecretStoreProvider{
  44. AWS: &esv1alpha1.AWSProvider{
  45. Service: esv1alpha1.AWSServiceParameterStore,
  46. },
  47. },
  48. },
  49. },
  50. },
  51. }
  52. for i := range tbl {
  53. row := tbl[i]
  54. t.Run(row.test, func(t *testing.T) {
  55. sc, err := p.NewClient(context.TODO(), row.store, cl, "foo")
  56. if row.expErr {
  57. assert.Error(t, err)
  58. assert.Nil(t, sc)
  59. } else {
  60. assert.Nil(t, err)
  61. assert.NotNil(t, sc)
  62. }
  63. })
  64. }
  65. }