get.porter.sh/porter@v1.3.0/pkg/secrets/plugins/filesystem/store_test.go (about) 1 package filesystem_test 2 3 import ( 4 "context" 5 "path/filepath" 6 "testing" 7 8 "get.porter.sh/porter/pkg/config" 9 "get.porter.sh/porter/pkg/secrets" 10 "get.porter.sh/porter/pkg/secrets/plugins/filesystem" 11 "github.com/stretchr/testify/require" 12 ) 13 14 func TestFileSystem_Permission(t *testing.T) { 15 c := config.NewTestConfig(t) 16 defer c.Close() 17 18 testStore := filesystem.NewStore(c.Config) 19 defer testStore.Close() 20 21 ctx := context.Background() 22 err := testStore.Connect(ctx) 23 require.NoError(t, err) 24 25 secretDir := "/home/myuser/.porter/secrets" 26 info, err := c.FileSystem.Stat(secretDir) 27 require.NoError(t, err) 28 require.Equal(t, filesystem.FileModeSensitiveDirectory, info.Mode().Perm(), "invalid folder permission %s", info.Mode().Perm().String()) 29 30 secretKey := "porter-filesystem-plugin-test" 31 err = testStore.Create(ctx, secrets.SourceSecret, secretKey, "supersecret") 32 require.NoError(t, err) 33 34 info, err = c.FileSystem.Stat(filepath.Join(secretDir, secretKey)) 35 require.NoError(t, err) 36 require.Equal(t, filesystem.FileModeSensitiveWritable, info.Mode().Perm()) 37 } 38 39 func TestFileSystem_SetSecretDir(t *testing.T) { 40 c := config.NewTestConfig(t) 41 42 s := filesystem.NewStore(c.Config) 43 secretDir, err := s.SetSecretDir() 44 require.NoError(t, err) 45 require.Equal(t, filepath.FromSlash("/home/myuser/.porter/secrets"), secretDir) 46 } 47 48 func TestFileSystem_DataOperation(t *testing.T) { 49 c := config.NewTestConfig(t) 50 defer c.Close() 51 52 testStore := filesystem.NewStore(c.Config) 53 defer testStore.Close() 54 55 ctx := context.Background() 56 err := testStore.Connect(ctx) 57 require.NoError(t, err) 58 59 secretKey := "porter-filesystem-plugin-test" 60 secretValue := "supersecret" 61 err = testStore.Create(ctx, secrets.SourceSecret, secretKey, secretValue) 62 require.NoError(t, err) 63 64 data, err := testStore.Resolve(ctx, secrets.SourceSecret, secretKey) 65 require.NoError(t, err) 66 require.Equal(t, secretValue, data) 67 }