helmfile/pkg/tmpl/expand_secret_ref_test.go

80 lines
2.1 KiB
Go

package tmpl
import (
"errors"
"testing"
"github.com/golang/mock/gomock"
"github.com/stretchr/testify/assert"
)
func Test_fetchSecretValue(t *testing.T) {
controller := gomock.NewController(t)
defer controller.Finish()
c := NewMockvalClient(controller)
secretsClient = c
secretPath := "ref+vault://key/#path"
expectArg := make(map[string]any)
expectArg["key"] = secretPath
valsResult := make(map[string]any)
valsResult["key"] = "key_value"
c.EXPECT().Eval(expectArg).Return(valsResult, nil)
result, err := fetchSecretValue(secretPath)
assert.Nil(t, err)
assert.Equal(t, result, "key_value")
}
func Test_fetchSecretValue_error(t *testing.T) {
controller := gomock.NewController(t)
defer controller.Finish()
c := NewMockvalClient(controller)
secretsClient = c
secretPath := "ref+vault://key/#path"
expectArg := make(map[string]any)
expectArg["key"] = secretPath
expectedErr := errors.New("some error")
c.EXPECT().Eval(expectArg).Return(nil, expectedErr)
result, err := fetchSecretValue(secretPath)
assert.Equal(t, err, expectedErr)
assert.Equal(t, result, "")
}
func Test_fetchSecretValue_no_key(t *testing.T) {
controller := gomock.NewController(t)
defer controller.Finish()
c := NewMockvalClient(controller)
secretsClient = c
secretPath := "ref+vault://key/#path"
expectArg := make(map[string]any)
expectArg["key"] = secretPath
valsResult := make(map[string]any)
c.EXPECT().Eval(expectArg).Return(valsResult, nil)
result, err := fetchSecretValue(secretPath)
assert.Error(t, err, "unexpected error occurred, map[] doesn't have 'key' key")
assert.Equal(t, result, "")
}
func Test_fetchSecretValue_invalid_type(t *testing.T) {
controller := gomock.NewController(t)
defer controller.Finish()
c := NewMockvalClient(controller)
secretsClient = c
secretPath := "ref+vault://key/#path"
expectArg := make(map[string]any)
expectArg["key"] = secretPath
valsResult := make(map[string]any)
valsResult["key"] = 10
c.EXPECT().Eval(expectArg).Return(valsResult, nil)
result, err := fetchSecretValue(secretPath)
assert.Error(t, err, "expected 10 to be string")
assert.Equal(t, result, "")
}