github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/isecretsimpl/impl_test.go (about) 1 /* 2 * Copyright (c) 2022-present unTill Pro, Ltd. 3 */ 4 5 package isecretsimpl 6 7 import ( 8 "io/fs" 9 "os" 10 "path/filepath" 11 "testing" 12 13 "github.com/stretchr/testify/require" 14 "github.com/voedger/voedger/pkg/isecrets" 15 ) 16 17 func TestBasicUsage(t *testing.T) { 18 require := require.New(t) 19 dir, err := os.MkdirTemp("", "isecretsimpl") 20 require.NoError(err) 21 require.NoError(os.Setenv(SecretRootEnv, dir)) 22 defer func() { 23 require.NoError(os.RemoveAll(dir)) 24 require.NoError(os.Unsetenv(SecretRootEnv)) 25 }() 26 secret := "secret.json" 27 require.NoError(os.WriteFile(filepath.Join(dir, secret), []byte(`{"secret":"key"}`), fs.ModePerm)) 28 sr := ProvideSecretReader() 29 30 bb, err := sr.ReadSecret(secret) 31 require.NoError(err) 32 bb1, err1 := sr.ReadSecret("") 33 bb2, err2 := sr.ReadSecret(" ") 34 bb3, err3 := sr.ReadSecret("file-not-exist") 35 36 require.Equal(`{"secret":"key"}`, string(bb)) 37 require.ErrorIs(err1, isecrets.ErrSecretNameIsBlank) 38 require.ErrorIs(err2, isecrets.ErrSecretNameIsBlank) 39 require.ErrorIs(err3, fs.ErrNotExist) 40 require.Nil(bb1) 41 require.Nil(bb2) 42 require.Nil(bb3) 43 }