Initial commit
This commit is contained in:
47
error_test.go
Normal file
47
error_test.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package jsrest_test
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
"github.com/gopatchy/jsrest"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestFromError(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
e1 := errors.New("error 1") //nolint:goerr113
|
||||
e2 := jsrest.Errorf(jsrest.ErrBadGateway, "error 2: %w", e1)
|
||||
|
||||
require.ErrorIs(t, e2, e1)
|
||||
require.ErrorIs(t, e2, jsrest.ErrBadGateway)
|
||||
|
||||
je := jsrest.ToJSONError(e2)
|
||||
|
||||
require.Equal(t, http.StatusBadGateway, je.Code)
|
||||
require.Contains(t, je.Messages, "error 1")
|
||||
require.Contains(t, je.Messages, "error 2: error 1")
|
||||
require.Contains(t, je.Messages, "[502] Bad Gateway")
|
||||
}
|
||||
|
||||
func TestFromErrors(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
e1 := jsrest.Errorf(jsrest.ErrForbidden, "error 1")
|
||||
e2 := errors.New("error 2") //nolint:goerr113
|
||||
e3 := jsrest.Errorf(jsrest.ErrBadGateway, "error 3: %w + %w", e1, e2)
|
||||
|
||||
require.ErrorIs(t, e3, e1)
|
||||
require.ErrorIs(t, e3, e2)
|
||||
require.ErrorIs(t, e3, jsrest.ErrForbidden)
|
||||
|
||||
je := jsrest.ToJSONError(e3)
|
||||
|
||||
require.Equal(t, http.StatusForbidden, je.Code)
|
||||
require.Contains(t, je.Messages, "error 1")
|
||||
require.Contains(t, je.Messages, "error 2")
|
||||
require.Contains(t, je.Messages, "error 3: error 1 + error 2")
|
||||
require.Contains(t, je.Messages, "[403] Forbidden")
|
||||
}
|
||||
Reference in New Issue
Block a user