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  }