package errors_test
import (
"net/url"
"testing"
"github.com/git-lfs/git-lfs/v3/errors"
"github.com/stretchr/testify/assert"
)
type TemporaryError struct {
}
func (e TemporaryError) Error() string {
return ""
}
func (e TemporaryError) Temporary() bool {
return true
}
type TimeoutError struct {
}
func (e TimeoutError) Error() string {
return ""
}
func (e TimeoutError) Timeout() bool {
return true
}
func TestCanRetryOnTemporaryError(t *testing.T) {
err := &url.Error{Err: TemporaryError{}}
assert.True(t, errors.IsRetriableError(err))
}
func TestCanRetryOnTimeoutError(t *testing.T) {
err := &url.Error{Err: TimeoutError{}}
assert.True(t, errors.IsRetriableError(err))
}
func TestCannotRetryOnGenericUrlError(t *testing.T) {
err := &url.Error{Err: errors.New("")}
assert.False(t, errors.IsRetriableError(err))
}