github.com/argoproj/argo-cd/v3@v3.2.1/applicationset/services/pull_request/errors_test.go (about)

     1  package pull_request
     2  
     3  import (
     4  	"errors"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  func TestRepositoryNotFoundError(t *testing.T) {
    12  	t.Run("NewRepositoryNotFoundError creates correct error type", func(t *testing.T) {
    13  		originalErr := errors.New("repository does not exist")
    14  		repoNotFoundErr := NewRepositoryNotFoundError(originalErr)
    15  
    16  		require.Error(t, repoNotFoundErr)
    17  		assert.Equal(t, "repository does not exist", repoNotFoundErr.Error())
    18  	})
    19  
    20  	t.Run("IsRepositoryNotFoundError identifies RepositoryNotFoundError", func(t *testing.T) {
    21  		originalErr := errors.New("repository does not exist")
    22  		repoNotFoundErr := NewRepositoryNotFoundError(originalErr)
    23  
    24  		assert.True(t, IsRepositoryNotFoundError(repoNotFoundErr))
    25  	})
    26  
    27  	t.Run("IsRepositoryNotFoundError returns false for regular errors", func(t *testing.T) {
    28  		regularErr := errors.New("some other error")
    29  
    30  		assert.False(t, IsRepositoryNotFoundError(regularErr))
    31  	})
    32  
    33  	t.Run("IsRepositoryNotFoundError returns false for nil error", func(t *testing.T) {
    34  		assert.False(t, IsRepositoryNotFoundError(nil))
    35  	})
    36  
    37  	t.Run("IsRepositoryNotFoundError works with wrapped errors", func(t *testing.T) {
    38  		originalErr := errors.New("repository does not exist")
    39  		repoNotFoundErr := NewRepositoryNotFoundError(originalErr)
    40  		wrappedErr := errors.New("wrapped: " + repoNotFoundErr.Error())
    41  
    42  		// Direct RepositoryNotFoundError should be identified
    43  		assert.True(t, IsRepositoryNotFoundError(repoNotFoundErr))
    44  
    45  		// Wrapped string error should not be identified (this is expected behavior)
    46  		assert.False(t, IsRepositoryNotFoundError(wrappedErr))
    47  	})
    48  }