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