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 }