github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/pkg/jenkins/credential_test.go (about) 1 //go:build unit 2 // +build unit 3 4 package jenkins 5 6 import ( 7 "context" 8 "testing" 9 10 "github.com/SAP/jenkins-library/pkg/jenkins/mocks" 11 "github.com/stretchr/testify/assert" 12 "github.com/stretchr/testify/mock" 13 ) 14 15 func TestUpdateCredential(t *testing.T) { 16 t.Parallel() 17 ctx := context.Background() 18 const ID = "testID" 19 const testSecret = "testSecret" 20 const domain = "_" 21 22 t.Run("That secret is updated", func(t *testing.T) { 23 credManagerMock := mocks.CredentialsManager{} 24 testCredential := StringCredentials{ID: ID, Secret: testSecret} 25 26 credManagerMock.On("Update", ctx, domain, ID, mock.Anything).Return(nil) 27 err := UpdateCredential(ctx, &credManagerMock, domain, testCredential) 28 credManagerMock.AssertCalled(t, "Update", ctx, domain, ID, testCredential) 29 30 assert.NoError(t, err) 31 }) 32 33 t.Run("Test that wrong credential type fails ", func(t *testing.T) { 34 credManagerMock := mocks.CredentialsManager{} 35 36 credManagerMock.On("Update", ctx, domain, ID, mock.Anything).Return(nil) 37 err := UpdateCredential(ctx, &credManagerMock, domain, 5) 38 credManagerMock.AssertNotCalled(t, "Update", ctx, domain, ID, mock.Anything) 39 assert.EqualError(t, err, "'credential' parameter is supposed to be a Credentials struct not 'int'") 40 }) 41 42 t.Run("Test that wrong credential type fails ", func(t *testing.T) { 43 credManagerMock := mocks.CredentialsManager{} 44 testCredential := struct{ Secret string }{ 45 Secret: "Test", 46 } 47 48 credManagerMock.On("Update", ctx, domain, ID, mock.Anything).Return(nil) 49 err := UpdateCredential(ctx, &credManagerMock, domain, testCredential) 50 credManagerMock.AssertNotCalled(t, "Update", ctx, domain, ID, mock.Anything) 51 assert.EqualError(t, err, "'credential' parameter is supposed to be a Credentials struct not 'struct { Secret string }'") 52 }) 53 54 t.Run("Test that empty secret id fails ", func(t *testing.T) { 55 credManagerMock := mocks.CredentialsManager{} 56 testCredential := StringCredentials{ID: "", Secret: testSecret} 57 58 credManagerMock.On("Update", ctx, domain, ID, mock.Anything).Return(nil) 59 err := UpdateCredential(ctx, &credManagerMock, domain, testCredential) 60 credManagerMock.AssertNotCalled(t, "Update", ctx, domain, ID, mock.Anything) 61 assert.EqualError(t, err, "secret ID should not be empty") 62 }) 63 64 }