github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/state/impl_app_secrets_storage_test.go (about) 1 /* 2 * Copyright (c) 2022-present unTill Pro, Ltd. 3 */ 4 5 package state 6 7 import ( 8 "context" 9 "io/fs" 10 "testing" 11 12 "github.com/stretchr/testify/mock" 13 "github.com/stretchr/testify/require" 14 "github.com/voedger/voedger/pkg/appdef" 15 "github.com/voedger/voedger/pkg/isecrets" 16 ) 17 18 func TestAppSecretsStorage_BasicUsage(t *testing.T) { 19 require := require.New(t) 20 secret := "secret.json" 21 secretBody := `{"secret":"key"}` 22 sr := &isecrets.SecretReaderMock{} 23 sr.On("ReadSecret", secret).Return([]byte(secretBody), nil) 24 s := ProvideAsyncActualizerStateFactory()(context.Background(), nilAppStructsFunc, nil, nil, nil, sr, nil, nil, nil, 0, 0) 25 kb, err := s.KeyBuilder(AppSecret, appdef.NullQName) 26 require.NoError(err) 27 kb.PutString(Field_Secret, secret) 28 29 sv, err := s.MustExist(kb) 30 require.NoError(err) 31 32 require.Equal(secretBody, sv.AsString("")) 33 } 34 func TestAppSecretsStorage(t *testing.T) { 35 t.Run("Should return error when key invalid", func(t *testing.T) { 36 s := ProvideAsyncActualizerStateFactory()(context.Background(), nilAppStructsFunc, nil, nil, nil, nil, nil, nil, nil, 0, 0) 37 kb, err := s.KeyBuilder(AppSecret, appdef.NullQName) 38 require.NoError(t, err) 39 40 _, err = s.MustExist(kb) 41 42 require.ErrorIs(t, err, ErrNotFound) 43 }) 44 t.Run("Should return value that not exists when", func(t *testing.T) { 45 tests := []struct { 46 err error 47 }{ 48 { 49 err: isecrets.ErrSecretNameIsBlank, 50 }, 51 { 52 err: fs.ErrNotExist, 53 }, 54 } 55 for _, test := range tests { 56 t.Run(test.err.Error(), func(t *testing.T) { 57 sr := &isecrets.SecretReaderMock{} 58 sr.On("ReadSecret", mock.Anything).Return(nil, test.err) 59 s := ProvideAsyncActualizerStateFactory()(context.Background(), nilAppStructsFunc, nil, nil, nil, sr, nil, nil, nil, 0, 0) 60 kb, err := s.KeyBuilder(AppSecret, appdef.NullQName) 61 require.NoError(t, err) 62 kb.PutString(Field_Secret, "") 63 64 _, ok, err := s.CanExist(kb) 65 require.NoError(t, err) 66 67 require.False(t, ok) 68 }) 69 } 70 }) 71 }