Files
gotenberg/pkg/modules/api/errors_test.go
2023-11-22 12:11:23 +01:00

109 lines
2.3 KiB
Go

package api
import (
"errors"
"net/http"
"reflect"
"testing"
)
func TestNewSentinelHttpError(t *testing.T) {
actual := NewSentinelHttpError(http.StatusInternalServerError, "foo")
expect := SentinelHttpError{
status: http.StatusInternalServerError,
message: "foo",
}
if !reflect.DeepEqual(actual, expect) {
t.Errorf("expected %v but got %v", expect, actual)
}
}
func TestSentinelHttpError_Error(t *testing.T) {
err := SentinelHttpError{
message: "foo",
}
actual := err.Error()
expect := "foo"
if actual != expect {
t.Errorf("expected '%s' but got '%s'", expect, actual)
}
}
func TestSentinelHttpError_HttpError(t *testing.T) {
actualStatus, actualMessage := SentinelHttpError{
status: http.StatusInternalServerError,
message: "foo",
}.HttpError()
expectStatus := http.StatusInternalServerError
expectMessage := "foo"
if actualStatus != expectStatus {
t.Errorf("expected %d but got %d", expectStatus, actualStatus)
}
if actualMessage != expectMessage {
t.Errorf("expected '%s' but got '%s'", expectMessage, actualMessage)
}
}
func TestSentinelWrappedError_Is(t *testing.T) {
errSentinel := SentinelHttpError{}
err := sentinelWrappedError{
error: errors.New("foo"),
sentinel: errSentinel,
}
if !err.Is(errSentinel) {
t.Error("expected true")
}
}
func TestSentinelWrappedError_HttpError(t *testing.T) {
expectStatus, expectMessage := SentinelHttpError{
status: http.StatusInternalServerError,
message: "foo",
}.HttpError()
actualStatus, actualMessage := sentinelWrappedError{
error: errors.New("foo"),
sentinel: SentinelHttpError{
status: http.StatusInternalServerError,
message: "foo",
},
}.HttpError()
if actualStatus != expectStatus {
t.Errorf("expected %d but got %d", expectStatus, actualStatus)
}
if actualMessage != expectMessage {
t.Errorf("expected '%s' but got '%s'", expectMessage, actualMessage)
}
}
func TestWrapError(t *testing.T) {
errFoo := errors.New("foo")
expect := sentinelWrappedError{
error: errFoo,
sentinel: SentinelHttpError{
status: http.StatusInternalServerError,
message: "foo",
},
}
actual := WrapError(errFoo, SentinelHttpError{
status: http.StatusInternalServerError,
message: "foo",
})
if !reflect.DeepEqual(actual, expect) {
t.Errorf("expected %v but got %v", expect, actual)
}
}