github.com/pluralsh/plural-cli@v0.9.5/pkg/crypto/config_test.go (about) 1 package crypto_test 2 3 import ( 4 "os" 5 "path" 6 "testing" 7 8 "github.com/pluralsh/plural-cli/pkg/crypto" 9 "github.com/pluralsh/plural-cli/pkg/utils/git" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestBuild(t *testing.T) { 14 tests := []struct { 15 name string 16 expectedError string 17 expected string 18 keyContent string 19 genConfig bool 20 }{ 21 { 22 name: `when faulty config exists create default fallbackProvider`, 23 keyContent: "key: abc", 24 expected: "SHA256:XJ4BNP4PAHH6UQKBIDPF3LRCEOYAGYNDSYLXVHFUCD7WD4QACWWQ====", 25 genConfig: true, 26 }, 27 { 28 name: `when config doesn't exist create default fallbackProvider`, 29 genConfig: false, 30 keyContent: "key: abc", 31 expected: "SHA256:XJ4BNP4PAHH6UQKBIDPF3LRCEOYAGYNDSYLXVHFUCD7WD4QACWWQ====", 32 }, 33 } 34 for _, test := range tests { 35 t.Run(test.name, func(t *testing.T) { 36 dir, err := os.MkdirTemp("", "config") 37 assert.NoError(t, err) 38 defer os.RemoveAll(dir) 39 40 os.Setenv("HOME", dir) 41 defer os.Unsetenv("HOME") 42 43 err = os.Chdir(dir) 44 assert.NoError(t, err) 45 _, err = git.Init() 46 assert.NoError(t, err) 47 48 if test.genConfig { 49 err := os.WriteFile(path.Join(dir, "crypto.yml"), []byte("abc"), 0644) 50 assert.NoError(t, err) 51 } 52 53 err = os.MkdirAll(path.Join(dir, ".plural"), os.ModePerm) 54 assert.NoError(t, err) 55 err = os.WriteFile(path.Join(dir, ".plural", "key"), []byte(test.keyContent), 0644) 56 assert.NoError(t, err) 57 58 provider, err := crypto.Build() 59 if test.expectedError != "" { 60 assert.Equal(t, test.expectedError, err.Error()) 61 } else { 62 assert.NoError(t, err) 63 assert.Equal(t, test.expected, provider.ID()) 64 } 65 }) 66 } 67 }