github.com/jaylevin/jenkins-library@v1.230.4/cmd/vaultRotateSecretId_test.go (about) 1 package cmd 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 type mockVaultRotateSecretIDUtilsBundle struct { 11 t *testing.T 12 newSecret string 13 ttl time.Duration 14 config *vaultRotateSecretIdOptions 15 updateFuncCalled bool 16 } 17 18 func TestRunVaultRotateSecretId(t *testing.T) { 19 t.Parallel() 20 mock := &mockVaultRotateSecretIDUtilsBundle{t, "test-secret", time.Hour, getTestConfig(), false} 21 runVaultRotateSecretID(mock) 22 assert.True(t, mock.updateFuncCalled) 23 24 } 25 26 func (v *mockVaultRotateSecretIDUtilsBundle) GenerateNewAppRoleSecret(secretID string, roleName string) (string, error) { 27 return v.newSecret, nil 28 } 29 30 func (v *mockVaultRotateSecretIDUtilsBundle) GetAppRoleSecretIDTtl(secretID, roleName string) (time.Duration, error) { 31 return v.ttl, nil 32 } 33 func (v *mockVaultRotateSecretIDUtilsBundle) GetAppRoleName() (string, error) { 34 return "test", nil 35 } 36 func (v *mockVaultRotateSecretIDUtilsBundle) UpdateSecretInStore(config *vaultRotateSecretIdOptions, secretID string) error { 37 v.updateFuncCalled = true 38 assert.Equal(v.t, v.newSecret, secretID) 39 return nil 40 } 41 func (v *mockVaultRotateSecretIDUtilsBundle) GetConfig() *vaultRotateSecretIdOptions { 42 return v.config 43 } 44 45 func getTestConfig() *vaultRotateSecretIdOptions { 46 return &vaultRotateSecretIdOptions{ 47 DaysBeforeExpiry: 5, 48 } 49 }