✨ Implement Handler and HandlerFunc, add comprehensive tests
This commit is contained in:
parent
aa7dfb532f
commit
a136616088
5 changed files with 138 additions and 5 deletions
|
|
@ -1 +1,63 @@
|
|||
package ezhandler_test
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
|
||||
"codeberg.org/danjones000/ezhandler"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
var (
|
||||
errTest = errors.New("test error")
|
||||
)
|
||||
|
||||
func TestNewHelper(t *testing.T) {
|
||||
mockErrorHandler := func(w http.ResponseWriter, r *http.Request, err error) {}
|
||||
helper := ezhandler.NewHelper(mockErrorHandler)
|
||||
assert.NotNil(t, helper)
|
||||
}
|
||||
|
||||
func runHelperTest(t *testing.T, name string, handlerErr, expectedErr error, expectedErrorHandlerCalled bool, handlerType string) {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
var errorHandlerCalled bool
|
||||
mockErrorHandler := func(w http.ResponseWriter, r *http.Request, err error) {
|
||||
errorHandlerCalled = true
|
||||
assert.Equal(t, expectedErr, err)
|
||||
}
|
||||
helper := ezhandler.NewHelper(mockErrorHandler)
|
||||
|
||||
req := httptest.NewRequest(http.MethodGet, "/", http.NoBody)
|
||||
rec := httptest.NewRecorder()
|
||||
|
||||
var wrappedHandler http.Handler
|
||||
switch handlerType {
|
||||
case "Handler":
|
||||
mockHandler := ezhandler.HandlerFunc(func(w http.ResponseWriter, r *http.Request) error {
|
||||
return handlerErr
|
||||
})
|
||||
wrappedHandler = helper.Handler(mockHandler)
|
||||
case "HandlerFunc":
|
||||
mockHandlerFunc := ezhandler.HandlerFunc(func(w http.ResponseWriter, r *http.Request) error {
|
||||
return handlerErr
|
||||
})
|
||||
wrappedHandler = helper.HandlerFunc(mockHandlerFunc)
|
||||
}
|
||||
|
||||
wrappedHandler.ServeHTTP(rec, req)
|
||||
|
||||
assert.Equal(t, expectedErrorHandlerCalled, errorHandlerCalled)
|
||||
})
|
||||
}
|
||||
|
||||
func TestHelper_Handler(t *testing.T) {
|
||||
runHelperTest(t, "no error", nil, nil, false, "Handler")
|
||||
runHelperTest(t, "with error", errTest, errTest, true, "Handler")
|
||||
}
|
||||
|
||||
func TestHelper_HandlerFunc(t *testing.T) {
|
||||
runHelperTest(t, "no error", nil, nil, false, "HandlerFunc")
|
||||
runHelperTest(t, "with error", errTest, errTest, true, "HandlerFunc")
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue