52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
package httptransport
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"io"
|
|
"net/http"
|
|
"testing"
|
|
)
|
|
|
|
func composeWithEOFError(msg string) error {
|
|
return fmt.Errorf("%w: %s", io.EOF, msg)
|
|
}
|
|
|
|
func TestIgnoreExpectedEOFWithNoError(t *testing.T) {
|
|
if err := ignoreExpectedEOF(nil, nil); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestIgnoreExpectedEOFWithEOFErrorButNoCloseHint(t *testing.T) {
|
|
resp := &http.Response{}
|
|
in := composeWithEOFError("antani")
|
|
if err := ignoreExpectedEOF(in, resp); !errors.Is(err, io.EOF) {
|
|
t.Fatalf("not the error we expected: %+v", err)
|
|
}
|
|
}
|
|
|
|
func TestIgnoreExpectedEOFWithEOFErrorAndCloseHint(t *testing.T) {
|
|
resp := &http.Response{Close: true}
|
|
in := composeWithEOFError("antani")
|
|
if err := ignoreExpectedEOF(in, resp); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestIgnoreExpectedEOFAnyOtherErrorAndCloseHint(t *testing.T) {
|
|
resp := &http.Response{Close: true}
|
|
in := errors.New("antani")
|
|
if err := ignoreExpectedEOF(in, resp); !errors.Is(err, in) {
|
|
t.Fatalf("not the error we expected: %+v", err)
|
|
}
|
|
}
|
|
|
|
func TestIgnoreExpectedEOFAnyOtherErrorAndNoCloseHint(t *testing.T) {
|
|
resp := &http.Response{Close: false /*explicit*/}
|
|
in := errors.New("antani")
|
|
if err := ignoreExpectedEOF(in, resp); !errors.Is(err, in) {
|
|
t.Fatalf("not the error we expected: %+v", err)
|
|
}
|
|
}
|