80 lines
2.1 KiB
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, "")
|
|
}
|