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  }