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  }