mirror of https://github.com/gofiber/fiber.git
chore: Fix remaining testifylint errors (#2806)
parent
827013d789
commit
3c4509f054
158
app_test.go
158
app_test.go
|
@ -263,7 +263,7 @@ func Test_App_serverErrorHandler_Internal_Error(t *testing.T) {
|
|||
|
||||
app.serverErrorHandler(c.fasthttp, errors.New(msg))
|
||||
require.Equal(t, string(c.fasthttp.Response.Body()), msg)
|
||||
require.Equal(t, c.fasthttp.Response.StatusCode(), StatusBadRequest)
|
||||
require.Equal(t, StatusBadRequest, c.fasthttp.Response.StatusCode())
|
||||
}
|
||||
|
||||
func Test_App_serverErrorHandler_Network_Error(t *testing.T) {
|
||||
|
@ -277,7 +277,7 @@ func Test_App_serverErrorHandler_Network_Error(t *testing.T) {
|
|||
IsTimeout: false,
|
||||
})
|
||||
require.Equal(t, string(c.fasthttp.Response.Body()), utils.StatusMessage(StatusBadGateway))
|
||||
require.Equal(t, c.fasthttp.Response.StatusCode(), StatusBadGateway)
|
||||
require.Equal(t, StatusBadGateway, c.fasthttp.Response.StatusCode())
|
||||
}
|
||||
|
||||
func Test_App_Nested_Params(t *testing.T) {
|
||||
|
@ -422,22 +422,22 @@ func Test_App_Not_Use_StrictRouting(t *testing.T) {
|
|||
|
||||
// wrong path in the requested route -> 404
|
||||
resp, err := app.Test(httptest.NewRequest(MethodGet, "/abc/", nil))
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, StatusOK, resp.StatusCode, "Status code")
|
||||
|
||||
// right path in the requrested route -> 200
|
||||
resp, err = app.Test(httptest.NewRequest(MethodGet, "/abc", nil))
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, StatusOK, resp.StatusCode, "Status code")
|
||||
|
||||
// wrong path with group in the requested route -> 404
|
||||
resp, err = app.Test(httptest.NewRequest(MethodGet, "/foo", nil))
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, StatusOK, resp.StatusCode, "Status code")
|
||||
|
||||
// right path with group in the requrested route -> 200
|
||||
resp, err = app.Test(httptest.NewRequest(MethodGet, "/foo/", nil))
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, StatusOK, resp.StatusCode, "Status code")
|
||||
}
|
||||
|
||||
|
@ -502,22 +502,22 @@ func Test_App_Use_StrictRouting(t *testing.T) {
|
|||
|
||||
// wrong path in the requested route -> 404
|
||||
resp, err := app.Test(httptest.NewRequest(MethodGet, "/abc/", nil))
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, StatusNotFound, resp.StatusCode, "Status code")
|
||||
|
||||
// right path in the requrested route -> 200
|
||||
resp, err = app.Test(httptest.NewRequest(MethodGet, "/abc", nil))
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, StatusOK, resp.StatusCode, "Status code")
|
||||
|
||||
// wrong path with group in the requested route -> 404
|
||||
resp, err = app.Test(httptest.NewRequest(MethodGet, "/foo", nil))
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, StatusNotFound, resp.StatusCode, "Status code")
|
||||
|
||||
// right path with group in the requrested route -> 200
|
||||
resp, err = app.Test(httptest.NewRequest(MethodGet, "/foo/", nil))
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, StatusOK, resp.StatusCode, "Status code")
|
||||
}
|
||||
|
||||
|
@ -597,7 +597,7 @@ func Test_App_Chaining(t *testing.T) {
|
|||
return c.SendStatus(202)
|
||||
})
|
||||
// check handler count for registered HEAD route
|
||||
require.Equal(t, 5, len(app.stack[app.methodInt(MethodHead)][0].Handlers), "app.Test(req)")
|
||||
require.Len(t, app.stack[app.methodInt(MethodHead)][0].Handlers, 5, "app.Test(req)")
|
||||
|
||||
req := httptest.NewRequest(MethodPost, "/john", nil)
|
||||
|
||||
|
@ -747,14 +747,14 @@ func Test_App_Shutdown(t *testing.T) {
|
|||
t.Run("success", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
app := New()
|
||||
require.True(t, app.Shutdown() == nil)
|
||||
require.NoError(t, app.Shutdown())
|
||||
})
|
||||
|
||||
t.Run("no server", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
app := &App{}
|
||||
if err := app.Shutdown(); err != nil {
|
||||
require.Equal(t, "shutdown: server is not running", err.Error())
|
||||
require.ErrorContains(t, err, "shutdown: server is not running")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -811,7 +811,7 @@ func Test_App_ShutdownWithContext(t *testing.T) {
|
|||
ln := fasthttputil.NewInmemoryListener()
|
||||
|
||||
go func() {
|
||||
require.Equal(t, nil, app.Listener(ln))
|
||||
require.NoError(t, app.Listener(ln))
|
||||
}()
|
||||
|
||||
time.Sleep(1 * time.Second)
|
||||
|
@ -857,17 +857,17 @@ func Test_App_Static_Index_Default(t *testing.T) {
|
|||
resp, err := app.Test(httptest.NewRequest(MethodGet, "/", nil))
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMETextHTMLCharsetUTF8, resp.Header.Get(HeaderContentType))
|
||||
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.True(t, strings.Contains(string(body), "Hello, World!"))
|
||||
require.Contains(t, string(body), "Hello, World!")
|
||||
|
||||
resp, err = app.Test(httptest.NewRequest(MethodGet, "/not-found", nil))
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 404, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMETextPlainCharsetUTF8, resp.Header.Get(HeaderContentType))
|
||||
|
||||
body, err = io.ReadAll(resp.Body)
|
||||
|
@ -884,23 +884,23 @@ func Test_App_Static_Direct(t *testing.T) {
|
|||
resp, err := app.Test(httptest.NewRequest(MethodGet, "/index.html", nil))
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMETextHTMLCharsetUTF8, resp.Header.Get(HeaderContentType))
|
||||
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.True(t, strings.Contains(string(body), "Hello, World!"))
|
||||
require.Contains(t, string(body), "Hello, World!")
|
||||
|
||||
resp, err = app.Test(httptest.NewRequest(MethodGet, "/testdata/testRoutes.json", nil))
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMEApplicationJSON, resp.Header.Get("Content-Type"))
|
||||
require.Equal(t, "", resp.Header.Get(HeaderCacheControl), "CacheControl Control")
|
||||
|
||||
body, err = io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.True(t, strings.Contains(string(body), "test_routes"))
|
||||
require.Contains(t, string(body), "test_routes")
|
||||
}
|
||||
|
||||
// go test -run Test_App_Static_MaxAge
|
||||
|
@ -912,7 +912,7 @@ func Test_App_Static_MaxAge(t *testing.T) {
|
|||
resp, err := app.Test(httptest.NewRequest(MethodGet, "/index.html", nil))
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, "text/html; charset=utf-8", resp.Header.Get(HeaderContentType))
|
||||
require.Equal(t, "public, max-age=100", resp.Header.Get(HeaderCacheControl), "CacheControl Control")
|
||||
}
|
||||
|
@ -929,11 +929,11 @@ func Test_App_Static_Custom_CacheControl(t *testing.T) {
|
|||
}})
|
||||
|
||||
resp, err := app.Test(httptest.NewRequest(MethodGet, "/index.html", nil))
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, "no-cache, no-store, must-revalidate", resp.Header.Get(HeaderCacheControl), "CacheControl Control")
|
||||
|
||||
normalResp, normalErr := app.Test(httptest.NewRequest(MethodGet, "/config.yml", nil))
|
||||
require.Equal(t, nil, normalErr, "app.Test(req)")
|
||||
require.NoError(t, normalErr, "app.Test(req)")
|
||||
require.Equal(t, "", normalResp.Header.Get(HeaderCacheControl), "CacheControl Control")
|
||||
}
|
||||
|
||||
|
@ -946,7 +946,7 @@ func Test_App_Static_Download(t *testing.T) {
|
|||
resp, err := app.Test(httptest.NewRequest(MethodGet, "/fiber.png", nil))
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, "image/png", resp.Header.Get(HeaderContentType))
|
||||
require.Equal(t, `attachment`, resp.Header.Get(HeaderContentDisposition))
|
||||
}
|
||||
|
@ -966,7 +966,7 @@ func Test_App_Static_Group(t *testing.T) {
|
|||
resp, err := app.Test(req)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMETextHTMLCharsetUTF8, resp.Header.Get(HeaderContentType))
|
||||
require.Equal(t, "123", resp.Header.Get("Test-Header"))
|
||||
|
||||
|
@ -977,7 +977,7 @@ func Test_App_Static_Group(t *testing.T) {
|
|||
resp, err = app.Test(req)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMETextHTMLCharsetUTF8, resp.Header.Get(HeaderContentType))
|
||||
}
|
||||
|
||||
|
@ -990,12 +990,12 @@ func Test_App_Static_Wildcard(t *testing.T) {
|
|||
resp, err := app.Test(req)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMETextHTMLCharsetUTF8, resp.Header.Get(HeaderContentType))
|
||||
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.True(t, strings.Contains(string(body), "Test file"))
|
||||
require.Contains(t, string(body), "Test file")
|
||||
}
|
||||
|
||||
func Test_App_Static_Prefix_Wildcard(t *testing.T) {
|
||||
|
@ -1007,7 +1007,7 @@ func Test_App_Static_Prefix_Wildcard(t *testing.T) {
|
|||
resp, err := app.Test(req)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMETextHTMLCharsetUTF8, resp.Header.Get(HeaderContentType))
|
||||
|
||||
app.Static("/my/nameisjohn*", "./.github/index.html")
|
||||
|
@ -1015,12 +1015,12 @@ func Test_App_Static_Prefix_Wildcard(t *testing.T) {
|
|||
resp, err = app.Test(httptest.NewRequest(MethodGet, "/my/nameisjohn/no/its/not", nil))
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMETextHTMLCharsetUTF8, resp.Header.Get(HeaderContentType))
|
||||
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.True(t, strings.Contains(string(body), "Test file"))
|
||||
require.Contains(t, string(body), "Test file")
|
||||
}
|
||||
|
||||
func Test_App_Static_Prefix(t *testing.T) {
|
||||
|
@ -1031,7 +1031,7 @@ func Test_App_Static_Prefix(t *testing.T) {
|
|||
resp, err := app.Test(req)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMETextHTMLCharsetUTF8, resp.Header.Get(HeaderContentType))
|
||||
|
||||
app.Static("/prefix", "./.github/testdata")
|
||||
|
@ -1040,7 +1040,7 @@ func Test_App_Static_Prefix(t *testing.T) {
|
|||
resp, err = app.Test(req)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMETextHTMLCharsetUTF8, resp.Header.Get(HeaderContentType))
|
||||
|
||||
app.Static("/single", "./.github/testdata/testRoutes.json")
|
||||
|
@ -1049,7 +1049,7 @@ func Test_App_Static_Prefix(t *testing.T) {
|
|||
resp, err = app.Test(req)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMEApplicationJSON, resp.Header.Get(HeaderContentType))
|
||||
}
|
||||
|
||||
|
@ -1061,7 +1061,7 @@ func Test_App_Static_Trailing_Slash(t *testing.T) {
|
|||
resp, err := app.Test(req)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMETextHTMLCharsetUTF8, resp.Header.Get(HeaderContentType))
|
||||
|
||||
app.Static("/john_without_index", "./.github/testdata/fs/css")
|
||||
|
@ -1070,7 +1070,7 @@ func Test_App_Static_Trailing_Slash(t *testing.T) {
|
|||
resp, err = app.Test(req)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 404, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMETextPlainCharsetUTF8, resp.Header.Get(HeaderContentType))
|
||||
|
||||
app.Static("/john/", "./.github")
|
||||
|
@ -1079,14 +1079,14 @@ func Test_App_Static_Trailing_Slash(t *testing.T) {
|
|||
resp, err = app.Test(req)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMETextHTMLCharsetUTF8, resp.Header.Get(HeaderContentType))
|
||||
|
||||
req = httptest.NewRequest(MethodGet, "/john", nil)
|
||||
resp, err = app.Test(req)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMETextHTMLCharsetUTF8, resp.Header.Get(HeaderContentType))
|
||||
|
||||
app.Static("/john_without_index/", "./.github/testdata/fs/css")
|
||||
|
@ -1095,7 +1095,7 @@ func Test_App_Static_Trailing_Slash(t *testing.T) {
|
|||
resp, err = app.Test(req)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 404, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMETextPlainCharsetUTF8, resp.Header.Get(HeaderContentType))
|
||||
}
|
||||
|
||||
|
@ -1118,12 +1118,12 @@ func Test_App_Static_Next(t *testing.T) {
|
|||
resp, err := app.Test(req)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMETextPlainCharsetUTF8, resp.Header.Get(HeaderContentType))
|
||||
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.True(t, strings.Contains(string(body), "You've skipped app.Static"))
|
||||
require.Contains(t, string(body), "You've skipped app.Static")
|
||||
})
|
||||
|
||||
t.Run("app.Static is not skipped: serving index.html", func(t *testing.T) {
|
||||
|
@ -1132,12 +1132,12 @@ func Test_App_Static_Next(t *testing.T) {
|
|||
resp, err := app.Test(req)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, MIMETextHTMLCharsetUTF8, resp.Header.Get(HeaderContentType))
|
||||
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.True(t, strings.Contains(string(body), "Hello, World!"))
|
||||
require.Contains(t, string(body), "Hello, World!")
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -1162,7 +1162,7 @@ func Test_App_Mixed_Routes_WithSameLen(t *testing.T) {
|
|||
resp, err := app.Test(req)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, "TestValue", resp.Header.Get("TestHeader"))
|
||||
require.Equal(t, "text/html", resp.Header.Get(HeaderContentType))
|
||||
|
||||
|
@ -1175,13 +1175,13 @@ func Test_App_Mixed_Routes_WithSameLen(t *testing.T) {
|
|||
resp, err = app.Test(req)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.False(t, resp.Header.Get(HeaderContentLength) == "")
|
||||
require.NotEmpty(t, resp.Header.Get(HeaderContentLength))
|
||||
require.Equal(t, "TestValue", resp.Header.Get("TestHeader"))
|
||||
require.Equal(t, "text/html; charset=utf-8", resp.Header.Get(HeaderContentType))
|
||||
|
||||
body, err = io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.True(t, strings.Contains(string(body), "Hello, World!"), "Response: "+string(body))
|
||||
require.Contains(t, string(body), "Hello, World!")
|
||||
require.True(t, strings.HasPrefix(string(body), "<!DOCTYPE html>"), "Response: "+string(body))
|
||||
}
|
||||
|
||||
|
@ -1384,13 +1384,15 @@ func Test_Test_Timeout(t *testing.T) {
|
|||
})
|
||||
|
||||
_, err = app.Test(httptest.NewRequest(MethodGet, "/timeout", nil), 20)
|
||||
require.True(t, err != nil, "app.Test(req)")
|
||||
require.Error(t, err, "app.Test(req)")
|
||||
}
|
||||
|
||||
type errorReader int
|
||||
|
||||
var errErrorReader = errors.New("errorReader")
|
||||
|
||||
func (errorReader) Read([]byte) (int, error) {
|
||||
return 0, errors.New("errorReader")
|
||||
return 0, errErrorReader
|
||||
}
|
||||
|
||||
// go test -run Test_Test_DumpError
|
||||
|
@ -1401,8 +1403,8 @@ func Test_Test_DumpError(t *testing.T) {
|
|||
app.Get("/", testEmptyHandler)
|
||||
|
||||
resp, err := app.Test(httptest.NewRequest(MethodGet, "/", errorReader(0)))
|
||||
require.True(t, resp == nil)
|
||||
require.Equal(t, "failed to dump request: errorReader", err.Error())
|
||||
require.Nil(t, resp)
|
||||
require.ErrorIs(t, err, errErrorReader)
|
||||
}
|
||||
|
||||
// go test -run Test_App_Handler
|
||||
|
@ -1445,15 +1447,15 @@ func Test_App_Stack(t *testing.T) {
|
|||
stack := app.Stack()
|
||||
methodList := app.config.RequestMethods
|
||||
require.Equal(t, len(methodList), len(stack))
|
||||
require.Equal(t, 3, len(stack[app.methodInt(MethodGet)]))
|
||||
require.Equal(t, 1, len(stack[app.methodInt(MethodHead)]))
|
||||
require.Equal(t, 2, len(stack[app.methodInt(MethodPost)]))
|
||||
require.Equal(t, 1, len(stack[app.methodInt(MethodPut)]))
|
||||
require.Equal(t, 1, len(stack[app.methodInt(MethodPatch)]))
|
||||
require.Equal(t, 1, len(stack[app.methodInt(MethodDelete)]))
|
||||
require.Equal(t, 1, len(stack[app.methodInt(MethodConnect)]))
|
||||
require.Equal(t, 1, len(stack[app.methodInt(MethodOptions)]))
|
||||
require.Equal(t, 1, len(stack[app.methodInt(MethodTrace)]))
|
||||
require.Len(t, stack[app.methodInt(MethodGet)], 3)
|
||||
require.Len(t, stack[app.methodInt(MethodHead)], 1)
|
||||
require.Len(t, stack[app.methodInt(MethodPost)], 2)
|
||||
require.Len(t, stack[app.methodInt(MethodPut)], 1)
|
||||
require.Len(t, stack[app.methodInt(MethodPatch)], 1)
|
||||
require.Len(t, stack[app.methodInt(MethodDelete)], 1)
|
||||
require.Len(t, stack[app.methodInt(MethodConnect)], 1)
|
||||
require.Len(t, stack[app.methodInt(MethodOptions)], 1)
|
||||
require.Len(t, stack[app.methodInt(MethodTrace)], 1)
|
||||
}
|
||||
|
||||
// go test -run Test_App_HandlersCount
|
||||
|
@ -1502,10 +1504,10 @@ func Test_App_ReadTimeout(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
require.True(t, bytes.Contains(buf[:n], []byte("408 Request Timeout")))
|
||||
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
require.Nil(t, app.Listen(":4004", ListenConfig{DisableStartupMessage: true}))
|
||||
require.NoError(t, app.Listen(":4004", ListenConfig{DisableStartupMessage: true}))
|
||||
}
|
||||
|
||||
// go test -run Test_App_BadRequest
|
||||
|
@ -1536,10 +1538,10 @@ func Test_App_BadRequest(t *testing.T) {
|
|||
|
||||
require.True(t, bytes.Contains(buf[:n], []byte("400 Bad Request")))
|
||||
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
require.Nil(t, app.Listen(":4005", ListenConfig{DisableStartupMessage: true}))
|
||||
require.NoError(t, app.Listen(":4005", ListenConfig{DisableStartupMessage: true}))
|
||||
}
|
||||
|
||||
// go test -run Test_App_SmallReadBuffer
|
||||
|
@ -1561,17 +1563,17 @@ func Test_App_SmallReadBuffer(t *testing.T) {
|
|||
resp, err := client.Do(req)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 431, resp.StatusCode)
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
require.Nil(t, app.Listen(":4006", ListenConfig{DisableStartupMessage: true}))
|
||||
require.NoError(t, app.Listen(":4006", ListenConfig{DisableStartupMessage: true}))
|
||||
}
|
||||
|
||||
func Test_App_Server(t *testing.T) {
|
||||
t.Parallel()
|
||||
app := New()
|
||||
|
||||
require.False(t, app.Server() == nil)
|
||||
require.NotNil(t, app.Server())
|
||||
}
|
||||
|
||||
func Test_App_Error_In_Fasthttp_Server(t *testing.T) {
|
||||
|
@ -1653,8 +1655,8 @@ func Test_App_DisablePreParseMultipartForm(t *testing.T) {
|
|||
require.NoError(t, err, "w.CreateFormFile")
|
||||
n, err := writer.Write([]byte(testString))
|
||||
require.NoError(t, err, "writer.Write")
|
||||
require.Equal(t, len(testString), n, "writer n")
|
||||
require.Nil(t, w.Close(), "w.Close()")
|
||||
require.Len(t, testString, n, "writer n")
|
||||
require.NoError(t, w.Close(), "w.Close()")
|
||||
|
||||
req := httptest.NewRequest(MethodPost, "/", b)
|
||||
req.Header.Set("Content-Type", w.FormDataContentType())
|
||||
|
@ -1740,7 +1742,7 @@ func TestApp_GetRoutes(t *testing.T) {
|
|||
app.Delete("/delete", handler).Name("delete")
|
||||
app.Post("/post", handler).Name("post")
|
||||
routes := app.GetRoutes(false)
|
||||
require.Equal(t, 2+len(app.config.RequestMethods), len(routes))
|
||||
require.Len(t, routes, 2+len(app.config.RequestMethods))
|
||||
methodMap := map[string]string{"/delete": "delete", "/post": "post"}
|
||||
for _, route := range routes {
|
||||
name, ok := methodMap[route.Path]
|
||||
|
@ -1750,10 +1752,10 @@ func TestApp_GetRoutes(t *testing.T) {
|
|||
}
|
||||
|
||||
routes = app.GetRoutes(true)
|
||||
require.Equal(t, 2, len(routes))
|
||||
require.Len(t, routes, 2)
|
||||
for _, route := range routes {
|
||||
name, ok := methodMap[route.Path]
|
||||
require.Equal(t, true, ok)
|
||||
require.True(t, ok)
|
||||
require.Equal(t, name, route.Name)
|
||||
}
|
||||
}
|
||||
|
@ -1867,28 +1869,28 @@ func Test_Route_Naming_Issue_2671_2685(t *testing.T) {
|
|||
app.Get("/users", emptyHandler).Name("get-users")
|
||||
app.Post("/users", emptyHandler).Name("add-user")
|
||||
getUsers := app.GetRoute("get-users")
|
||||
require.Equal(t, getUsers.Path, "/users")
|
||||
require.Equal(t, "/users", getUsers.Path)
|
||||
|
||||
addUser := app.GetRoute("add-user")
|
||||
require.Equal(t, addUser.Path, "/users")
|
||||
require.Equal(t, "/users", addUser.Path)
|
||||
|
||||
// Add testcase for routes use the same PATH on different methods (for groups)
|
||||
newGrp := app.Group("/name-test")
|
||||
newGrp.Get("/users", emptyHandler).Name("grp-get-users")
|
||||
newGrp.Post("/users", emptyHandler).Name("grp-add-user")
|
||||
getUsers = app.GetRoute("grp-get-users")
|
||||
require.Equal(t, getUsers.Path, "/name-test/users")
|
||||
require.Equal(t, "/name-test/users", getUsers.Path)
|
||||
|
||||
addUser = app.GetRoute("grp-add-user")
|
||||
require.Equal(t, addUser.Path, "/name-test/users")
|
||||
require.Equal(t, "/name-test/users", addUser.Path)
|
||||
|
||||
// Add testcase for HEAD route naming
|
||||
app.Get("/simple-route", emptyHandler).Name("simple-route")
|
||||
app.Head("/simple-route", emptyHandler).Name("simple-route2")
|
||||
|
||||
sRoute := app.GetRoute("simple-route")
|
||||
require.Equal(t, sRoute.Path, "/simple-route")
|
||||
require.Equal(t, "/simple-route", sRoute.Path)
|
||||
|
||||
sRoute2 := app.GetRoute("simple-route2")
|
||||
require.Equal(t, sRoute2.Path, "/simple-route")
|
||||
require.Equal(t, "/simple-route", sRoute2.Path)
|
||||
}
|
||||
|
|
236
bind_test.go
236
bind_test.go
|
@ -34,23 +34,23 @@ func Test_Bind_Query(t *testing.T) {
|
|||
c.Request().Header.SetContentType("")
|
||||
c.Request().URI().SetQueryString("id=1&name=tom&hobby=basketball&hobby=football")
|
||||
q := new(Query)
|
||||
require.Nil(t, c.Bind().Query(q))
|
||||
require.Equal(t, 2, len(q.Hobby))
|
||||
require.NoError(t, c.Bind().Query(q))
|
||||
require.Len(t, q.Hobby, 2)
|
||||
|
||||
c.Request().URI().SetQueryString("id=1&name=tom&hobby=basketball,football")
|
||||
q = new(Query)
|
||||
require.Nil(t, c.Bind().Query(q))
|
||||
require.Equal(t, 2, len(q.Hobby))
|
||||
require.NoError(t, c.Bind().Query(q))
|
||||
require.Len(t, q.Hobby, 2)
|
||||
|
||||
c.Request().URI().SetQueryString("id=1&name=tom&hobby=scoccer&hobby=basketball,football")
|
||||
q = new(Query)
|
||||
require.Nil(t, c.Bind().Query(q))
|
||||
require.Equal(t, 3, len(q.Hobby))
|
||||
require.NoError(t, c.Bind().Query(q))
|
||||
require.Len(t, q.Hobby, 3)
|
||||
|
||||
empty := new(Query)
|
||||
c.Request().URI().SetQueryString("")
|
||||
require.Nil(t, c.Bind().Query(empty))
|
||||
require.Equal(t, 0, len(empty.Hobby))
|
||||
require.NoError(t, c.Bind().Query(empty))
|
||||
require.Empty(t, empty.Hobby)
|
||||
|
||||
type Query2 struct {
|
||||
Bool bool
|
||||
|
@ -67,7 +67,7 @@ func Test_Bind_Query(t *testing.T) {
|
|||
q2 := new(Query2)
|
||||
q2.Bool = true
|
||||
q2.Name = helloWorld
|
||||
require.Nil(t, c.Bind().Query(q2))
|
||||
require.NoError(t, c.Bind().Query(q2))
|
||||
require.Equal(t, "basketball,football", q2.Hobby)
|
||||
require.True(t, q2.Bool)
|
||||
require.Equal(t, "tom", q2.Name) // check value get overwritten
|
||||
|
@ -89,8 +89,8 @@ func Test_Bind_Query(t *testing.T) {
|
|||
}
|
||||
aq := new(ArrayQuery)
|
||||
c.Request().URI().SetQueryString("data[]=john&data[]=doe")
|
||||
require.Nil(t, c.Bind().Query(aq))
|
||||
require.Equal(t, 2, len(aq.Data))
|
||||
require.NoError(t, c.Bind().Query(aq))
|
||||
require.Len(t, aq.Data, 2)
|
||||
}
|
||||
|
||||
// go test -run Test_Bind_Query_Map -v
|
||||
|
@ -104,32 +104,32 @@ func Test_Bind_Query_Map(t *testing.T) {
|
|||
c.Request().Header.SetContentType("")
|
||||
c.Request().URI().SetQueryString("id=1&name=tom&hobby=basketball&hobby=football")
|
||||
q := make(map[string][]string)
|
||||
require.Nil(t, c.Bind().Query(&q))
|
||||
require.Equal(t, 2, len(q["hobby"]))
|
||||
require.NoError(t, c.Bind().Query(&q))
|
||||
require.Len(t, q["hobby"], 2)
|
||||
|
||||
c.Request().URI().SetQueryString("id=1&name=tom&hobby=basketball,football")
|
||||
q = make(map[string][]string)
|
||||
require.Nil(t, c.Bind().Query(&q))
|
||||
require.Equal(t, 2, len(q["hobby"]))
|
||||
require.NoError(t, c.Bind().Query(&q))
|
||||
require.Len(t, q["hobby"], 2)
|
||||
|
||||
c.Request().URI().SetQueryString("id=1&name=tom&hobby=scoccer&hobby=basketball,football")
|
||||
q = make(map[string][]string)
|
||||
require.Nil(t, c.Bind().Query(&q))
|
||||
require.Equal(t, 3, len(q["hobby"]))
|
||||
require.NoError(t, c.Bind().Query(&q))
|
||||
require.Len(t, q["hobby"], 3)
|
||||
|
||||
c.Request().URI().SetQueryString("id=1&name=tom&hobby=scoccer")
|
||||
qq := make(map[string]string)
|
||||
require.Nil(t, c.Bind().Query(&qq))
|
||||
require.NoError(t, c.Bind().Query(&qq))
|
||||
require.Equal(t, "1", qq["id"])
|
||||
|
||||
empty := make(map[string][]string)
|
||||
c.Request().URI().SetQueryString("")
|
||||
require.Nil(t, c.Bind().Query(&empty))
|
||||
require.Equal(t, 0, len(empty["hobby"]))
|
||||
require.NoError(t, c.Bind().Query(&empty))
|
||||
require.Empty(t, empty["hobby"])
|
||||
|
||||
em := make(map[string][]int)
|
||||
c.Request().URI().SetQueryString("")
|
||||
require.Equal(t, binder.ErrMapNotConvertable, c.Bind().Query(&em))
|
||||
require.ErrorIs(t, c.Bind().Query(&em), binder.ErrMapNotConvertable)
|
||||
}
|
||||
|
||||
// go test -run Test_Bind_Query_WithSetParserDecoder -v
|
||||
|
@ -169,7 +169,7 @@ func Test_Bind_Query_WithSetParserDecoder(t *testing.T) {
|
|||
q := new(NonRFCTimeInput)
|
||||
|
||||
c.Request().URI().SetQueryString("date=2021-04-10&title=CustomDateTest&Body=October")
|
||||
require.Nil(t, c.Bind().Query(q))
|
||||
require.NoError(t, c.Bind().Query(q))
|
||||
require.Equal(t, "CustomDateTest", q.Title)
|
||||
date := fmt.Sprintf("%v", q.Date)
|
||||
require.Equal(t, "{0 63753609600 <nil>}", date)
|
||||
|
@ -180,7 +180,7 @@ func Test_Bind_Query_WithSetParserDecoder(t *testing.T) {
|
|||
Title: "Existing title",
|
||||
Body: "Existing Body",
|
||||
}
|
||||
require.Nil(t, c.Bind().Query(q))
|
||||
require.NoError(t, c.Bind().Query(q))
|
||||
require.Equal(t, "", q.Title)
|
||||
}
|
||||
|
||||
|
@ -200,7 +200,7 @@ func Test_Bind_Query_Schema(t *testing.T) {
|
|||
c.Request().Header.SetContentType("")
|
||||
c.Request().URI().SetQueryString("name=tom&nested.age=10")
|
||||
q := new(Query1)
|
||||
require.Nil(t, c.Bind().Query(q))
|
||||
require.NoError(t, c.Bind().Query(q))
|
||||
|
||||
c.Request().URI().SetQueryString("namex=tom&nested.age=10")
|
||||
q = new(Query1)
|
||||
|
@ -208,7 +208,7 @@ func Test_Bind_Query_Schema(t *testing.T) {
|
|||
|
||||
c.Request().URI().SetQueryString("name=tom&nested.agex=10")
|
||||
q = new(Query1)
|
||||
require.Nil(t, c.Bind().Query(q))
|
||||
require.NoError(t, c.Bind().Query(q))
|
||||
|
||||
c.Request().URI().SetQueryString("name=tom&test.age=10")
|
||||
q = new(Query1)
|
||||
|
@ -222,11 +222,11 @@ func Test_Bind_Query_Schema(t *testing.T) {
|
|||
}
|
||||
c.Request().URI().SetQueryString("name=tom&nested.age=10")
|
||||
q2 := new(Query2)
|
||||
require.Nil(t, c.Bind().Query(q2))
|
||||
require.NoError(t, c.Bind().Query(q2))
|
||||
|
||||
c.Request().URI().SetQueryString("nested.age=10")
|
||||
q2 = new(Query2)
|
||||
require.Nil(t, c.Bind().Query(q2))
|
||||
require.NoError(t, c.Bind().Query(q2))
|
||||
|
||||
c.Request().URI().SetQueryString("nested.agex=10")
|
||||
q2 = new(Query2)
|
||||
|
@ -242,7 +242,7 @@ func Test_Bind_Query_Schema(t *testing.T) {
|
|||
}
|
||||
c.Request().URI().SetQueryString("val=1&next.val=3")
|
||||
n := new(Node)
|
||||
require.Nil(t, c.Bind().Query(n))
|
||||
require.NoError(t, c.Bind().Query(n))
|
||||
require.Equal(t, 1, n.Value)
|
||||
require.Equal(t, 3, n.Next.Value)
|
||||
|
||||
|
@ -253,7 +253,7 @@ func Test_Bind_Query_Schema(t *testing.T) {
|
|||
c.Request().URI().SetQueryString("val=3&next.value=2")
|
||||
n = new(Node)
|
||||
n.Next = new(Node)
|
||||
require.Nil(t, c.Bind().Query(n))
|
||||
require.NoError(t, c.Bind().Query(n))
|
||||
require.Equal(t, 3, n.Value)
|
||||
require.Equal(t, 0, n.Next.Value)
|
||||
|
||||
|
@ -268,8 +268,8 @@ func Test_Bind_Query_Schema(t *testing.T) {
|
|||
|
||||
c.Request().URI().SetQueryString("data[0][name]=john&data[0][age]=10&data[1][name]=doe&data[1][age]=12")
|
||||
cq := new(CollectionQuery)
|
||||
require.Nil(t, c.Bind().Query(cq))
|
||||
require.Equal(t, 2, len(cq.Data))
|
||||
require.NoError(t, c.Bind().Query(cq))
|
||||
require.Len(t, cq.Data, 2)
|
||||
require.Equal(t, "john", cq.Data[0].Name)
|
||||
require.Equal(t, 10, cq.Data[0].Age)
|
||||
require.Equal(t, "doe", cq.Data[1].Name)
|
||||
|
@ -277,8 +277,8 @@ func Test_Bind_Query_Schema(t *testing.T) {
|
|||
|
||||
c.Request().URI().SetQueryString("data.0.name=john&data.0.age=10&data.1.name=doe&data.1.age=12")
|
||||
cq = new(CollectionQuery)
|
||||
require.Nil(t, c.Bind().Query(cq))
|
||||
require.Equal(t, 2, len(cq.Data))
|
||||
require.NoError(t, c.Bind().Query(cq))
|
||||
require.Len(t, cq.Data, 2)
|
||||
require.Equal(t, "john", cq.Data[0].Name)
|
||||
require.Equal(t, 10, cq.Data[0].Age)
|
||||
require.Equal(t, "doe", cq.Data[1].Name)
|
||||
|
@ -303,19 +303,19 @@ func Test_Bind_Header(t *testing.T) {
|
|||
c.Request().Header.Add("Name", "John Doe")
|
||||
c.Request().Header.Add("Hobby", "golang,fiber")
|
||||
q := new(Header)
|
||||
require.Nil(t, c.Bind().Header(q))
|
||||
require.Equal(t, 2, len(q.Hobby))
|
||||
require.NoError(t, c.Bind().Header(q))
|
||||
require.Len(t, q.Hobby, 2)
|
||||
|
||||
c.Request().Header.Del("hobby")
|
||||
c.Request().Header.Add("Hobby", "golang,fiber,go")
|
||||
q = new(Header)
|
||||
require.Nil(t, c.Bind().Header(q))
|
||||
require.Equal(t, 3, len(q.Hobby))
|
||||
require.NoError(t, c.Bind().Header(q))
|
||||
require.Len(t, q.Hobby, 3)
|
||||
|
||||
empty := new(Header)
|
||||
c.Request().Header.Del("hobby")
|
||||
require.Nil(t, c.Bind().Query(empty))
|
||||
require.Equal(t, 0, len(empty.Hobby))
|
||||
require.NoError(t, c.Bind().Query(empty))
|
||||
require.Empty(t, empty.Hobby)
|
||||
|
||||
type Header2 struct {
|
||||
Bool bool
|
||||
|
@ -339,7 +339,7 @@ func Test_Bind_Header(t *testing.T) {
|
|||
h2 := new(Header2)
|
||||
h2.Bool = true
|
||||
h2.Name = helloWorld
|
||||
require.Nil(t, c.Bind().Header(h2))
|
||||
require.NoError(t, c.Bind().Header(h2))
|
||||
require.Equal(t, "go,fiber", h2.Hobby)
|
||||
require.True(t, h2.Bool)
|
||||
require.Equal(t, "Jane Doe", h2.Name) // check value get overwritten
|
||||
|
@ -371,19 +371,19 @@ func Test_Bind_Header_Map(t *testing.T) {
|
|||
c.Request().Header.Add("Name", "John Doe")
|
||||
c.Request().Header.Add("Hobby", "golang,fiber")
|
||||
q := make(map[string][]string, 0)
|
||||
require.Nil(t, c.Bind().Header(&q))
|
||||
require.Equal(t, 2, len(q["Hobby"]))
|
||||
require.NoError(t, c.Bind().Header(&q))
|
||||
require.Len(t, q["Hobby"], 2)
|
||||
|
||||
c.Request().Header.Del("hobby")
|
||||
c.Request().Header.Add("Hobby", "golang,fiber,go")
|
||||
q = make(map[string][]string, 0)
|
||||
require.Nil(t, c.Bind().Header(&q))
|
||||
require.Equal(t, 3, len(q["Hobby"]))
|
||||
require.NoError(t, c.Bind().Header(&q))
|
||||
require.Len(t, q["Hobby"], 3)
|
||||
|
||||
empty := make(map[string][]string, 0)
|
||||
c.Request().Header.Del("hobby")
|
||||
require.Nil(t, c.Bind().Query(&empty))
|
||||
require.Equal(t, 0, len(empty["Hobby"]))
|
||||
require.NoError(t, c.Bind().Query(&empty))
|
||||
require.Empty(t, empty["Hobby"])
|
||||
}
|
||||
|
||||
// go test -run Test_Bind_Header_WithSetParserDecoder -v
|
||||
|
@ -426,7 +426,7 @@ func Test_Bind_Header_WithSetParserDecoder(t *testing.T) {
|
|||
c.Request().Header.Add("Title", "CustomDateTest")
|
||||
c.Request().Header.Add("Body", "October")
|
||||
|
||||
require.Nil(t, c.Bind().Header(r))
|
||||
require.NoError(t, c.Bind().Header(r))
|
||||
require.Equal(t, "CustomDateTest", r.Title)
|
||||
date := fmt.Sprintf("%v", r.Date)
|
||||
require.Equal(t, "{0 63753609600 <nil>}", date)
|
||||
|
@ -437,7 +437,7 @@ func Test_Bind_Header_WithSetParserDecoder(t *testing.T) {
|
|||
Title: "Existing title",
|
||||
Body: "Existing Body",
|
||||
}
|
||||
require.Nil(t, c.Bind().Header(r))
|
||||
require.NoError(t, c.Bind().Header(r))
|
||||
require.Equal(t, "", r.Title)
|
||||
}
|
||||
|
||||
|
@ -459,7 +459,7 @@ func Test_Bind_Header_Schema(t *testing.T) {
|
|||
c.Request().Header.Add("Name", "tom")
|
||||
c.Request().Header.Add("Nested.Age", "10")
|
||||
q := new(Header1)
|
||||
require.Nil(t, c.Bind().Header(q))
|
||||
require.NoError(t, c.Bind().Header(q))
|
||||
|
||||
c.Request().Header.Del("Name")
|
||||
q = new(Header1)
|
||||
|
@ -469,7 +469,7 @@ func Test_Bind_Header_Schema(t *testing.T) {
|
|||
c.Request().Header.Del("Nested.Age")
|
||||
c.Request().Header.Add("Nested.Agex", "10")
|
||||
q = new(Header1)
|
||||
require.Nil(t, c.Bind().Header(q))
|
||||
require.NoError(t, c.Bind().Header(q))
|
||||
|
||||
c.Request().Header.Del("Nested.Agex")
|
||||
q = new(Header1)
|
||||
|
@ -489,11 +489,11 @@ func Test_Bind_Header_Schema(t *testing.T) {
|
|||
c.Request().Header.Add("Nested.Age", "10")
|
||||
|
||||
h2 := new(Header2)
|
||||
require.Nil(t, c.Bind().Header(h2))
|
||||
require.NoError(t, c.Bind().Header(h2))
|
||||
|
||||
c.Request().Header.Del("Name")
|
||||
h2 = new(Header2)
|
||||
require.Nil(t, c.Bind().Header(h2))
|
||||
require.NoError(t, c.Bind().Header(h2))
|
||||
|
||||
c.Request().Header.Del("Name")
|
||||
c.Request().Header.Del("Nested.Age")
|
||||
|
@ -508,7 +508,7 @@ func Test_Bind_Header_Schema(t *testing.T) {
|
|||
c.Request().Header.Add("Val", "1")
|
||||
c.Request().Header.Add("Next.Val", "3")
|
||||
n := new(Node)
|
||||
require.Nil(t, c.Bind().Header(n))
|
||||
require.NoError(t, c.Bind().Header(n))
|
||||
require.Equal(t, 1, n.Value)
|
||||
require.Equal(t, 3, n.Next.Value)
|
||||
|
||||
|
@ -521,7 +521,7 @@ func Test_Bind_Header_Schema(t *testing.T) {
|
|||
c.Request().Header.Add("Next.Value", "2")
|
||||
n = new(Node)
|
||||
n.Next = new(Node)
|
||||
require.Nil(t, c.Bind().Header(n))
|
||||
require.NoError(t, c.Bind().Header(n))
|
||||
require.Equal(t, 3, n.Value)
|
||||
require.Equal(t, 0, n.Next.Value)
|
||||
}
|
||||
|
@ -544,19 +544,19 @@ func Test_Bind_RespHeader(t *testing.T) {
|
|||
c.Response().Header.Add("Name", "John Doe")
|
||||
c.Response().Header.Add("Hobby", "golang,fiber")
|
||||
q := new(Header)
|
||||
require.Nil(t, c.Bind().RespHeader(q))
|
||||
require.Equal(t, 2, len(q.Hobby))
|
||||
require.NoError(t, c.Bind().RespHeader(q))
|
||||
require.Len(t, q.Hobby, 2)
|
||||
|
||||
c.Response().Header.Del("hobby")
|
||||
c.Response().Header.Add("Hobby", "golang,fiber,go")
|
||||
q = new(Header)
|
||||
require.Nil(t, c.Bind().RespHeader(q))
|
||||
require.Equal(t, 3, len(q.Hobby))
|
||||
require.NoError(t, c.Bind().RespHeader(q))
|
||||
require.Len(t, q.Hobby, 3)
|
||||
|
||||
empty := new(Header)
|
||||
c.Response().Header.Del("hobby")
|
||||
require.Nil(t, c.Bind().Query(empty))
|
||||
require.Equal(t, 0, len(empty.Hobby))
|
||||
require.NoError(t, c.Bind().Query(empty))
|
||||
require.Empty(t, empty.Hobby)
|
||||
|
||||
type Header2 struct {
|
||||
Bool bool
|
||||
|
@ -580,7 +580,7 @@ func Test_Bind_RespHeader(t *testing.T) {
|
|||
h2 := new(Header2)
|
||||
h2.Bool = true
|
||||
h2.Name = helloWorld
|
||||
require.Nil(t, c.Bind().RespHeader(h2))
|
||||
require.NoError(t, c.Bind().RespHeader(h2))
|
||||
require.Equal(t, "go,fiber", h2.Hobby)
|
||||
require.True(t, h2.Bool)
|
||||
require.Equal(t, "Jane Doe", h2.Name) // check value get overwritten
|
||||
|
@ -612,19 +612,19 @@ func Test_Bind_RespHeader_Map(t *testing.T) {
|
|||
c.Response().Header.Add("Name", "John Doe")
|
||||
c.Response().Header.Add("Hobby", "golang,fiber")
|
||||
q := make(map[string][]string, 0)
|
||||
require.Nil(t, c.Bind().RespHeader(&q))
|
||||
require.Equal(t, 2, len(q["Hobby"]))
|
||||
require.NoError(t, c.Bind().RespHeader(&q))
|
||||
require.Len(t, q["Hobby"], 2)
|
||||
|
||||
c.Response().Header.Del("hobby")
|
||||
c.Response().Header.Add("Hobby", "golang,fiber,go")
|
||||
q = make(map[string][]string, 0)
|
||||
require.Nil(t, c.Bind().RespHeader(&q))
|
||||
require.Equal(t, 3, len(q["Hobby"]))
|
||||
require.NoError(t, c.Bind().RespHeader(&q))
|
||||
require.Len(t, q["Hobby"], 3)
|
||||
|
||||
empty := make(map[string][]string, 0)
|
||||
c.Response().Header.Del("hobby")
|
||||
require.Nil(t, c.Bind().Query(&empty))
|
||||
require.Equal(t, 0, len(empty["Hobby"]))
|
||||
require.NoError(t, c.Bind().Query(&empty))
|
||||
require.Empty(t, empty["Hobby"])
|
||||
}
|
||||
|
||||
// go test -v -run=^$ -bench=Benchmark_Bind_Query -benchmem -count=4
|
||||
|
@ -648,7 +648,7 @@ func Benchmark_Bind_Query(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
err = c.Bind().Query(q)
|
||||
}
|
||||
require.Nil(b, err)
|
||||
require.NoError(b, err)
|
||||
}
|
||||
|
||||
// go test -v -run=^$ -bench=Benchmark_Bind_Query_Map -benchmem -count=4
|
||||
|
@ -667,7 +667,7 @@ func Benchmark_Bind_Query_Map(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
err = c.Bind().Query(&q)
|
||||
}
|
||||
require.Nil(b, err)
|
||||
require.NoError(b, err)
|
||||
}
|
||||
|
||||
// go test -v -run=^$ -bench=Benchmark_Bind_Query_WithParseParam -benchmem -count=4
|
||||
|
@ -697,7 +697,7 @@ func Benchmark_Bind_Query_WithParseParam(b *testing.B) {
|
|||
err = c.Bind().Query(cq)
|
||||
}
|
||||
|
||||
require.Nil(b, err)
|
||||
require.NoError(b, err)
|
||||
}
|
||||
|
||||
// go test -v -run=^$ -bench=Benchmark_Bind_Query_Comma -benchmem -count=4
|
||||
|
@ -722,7 +722,7 @@ func Benchmark_Bind_Query_Comma(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
err = c.Bind().Query(q)
|
||||
}
|
||||
require.Nil(b, err)
|
||||
require.NoError(b, err)
|
||||
}
|
||||
|
||||
// go test -v -run=^$ -bench=Benchmark_Bind_Header -benchmem -count=4
|
||||
|
@ -750,7 +750,7 @@ func Benchmark_Bind_Header(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
err = c.Bind().Header(q)
|
||||
}
|
||||
require.Nil(b, err)
|
||||
require.NoError(b, err)
|
||||
}
|
||||
|
||||
// go test -v -run=^$ -bench=Benchmark_Bind_Header_Map -benchmem -count=4
|
||||
|
@ -772,7 +772,7 @@ func Benchmark_Bind_Header_Map(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
err = c.Bind().Header(&q)
|
||||
}
|
||||
require.Nil(b, err)
|
||||
require.NoError(b, err)
|
||||
}
|
||||
|
||||
// go test -v -run=^$ -bench=Benchmark_Bind_RespHeader -benchmem -count=4
|
||||
|
@ -800,7 +800,7 @@ func Benchmark_Bind_RespHeader(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
err = c.Bind().RespHeader(q)
|
||||
}
|
||||
require.Nil(b, err)
|
||||
require.NoError(b, err)
|
||||
}
|
||||
|
||||
// go test -v -run=^$ -bench=Benchmark_Bind_RespHeader_Map -benchmem -count=4
|
||||
|
@ -822,7 +822,7 @@ func Benchmark_Bind_RespHeader_Map(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
err = c.Bind().RespHeader(&q)
|
||||
}
|
||||
require.Nil(b, err)
|
||||
require.NoError(b, err)
|
||||
}
|
||||
|
||||
// go test -run Test_Bind_Body
|
||||
|
@ -848,7 +848,7 @@ func Test_Bind_Body(t *testing.T) {
|
|||
c.Request().SetBody(gzipJSON.Bytes())
|
||||
c.Request().Header.SetContentLength(len(gzipJSON.Bytes()))
|
||||
d := new(Demo)
|
||||
require.Nil(t, c.Bind().Body(d))
|
||||
require.NoError(t, c.Bind().Body(d))
|
||||
require.Equal(t, "john", d.Name)
|
||||
c.Request().Header.Del(HeaderContentEncoding)
|
||||
}
|
||||
|
@ -858,7 +858,7 @@ func Test_Bind_Body(t *testing.T) {
|
|||
c.Request().SetBody([]byte(body))
|
||||
c.Request().Header.SetContentLength(len(body))
|
||||
d := new(Demo)
|
||||
require.Nil(t, c.Bind().Body(d))
|
||||
require.NoError(t, c.Bind().Body(d))
|
||||
require.Equal(t, "john", d.Name)
|
||||
}
|
||||
|
||||
|
@ -871,7 +871,7 @@ func Test_Bind_Body(t *testing.T) {
|
|||
c.Request().Header.SetContentType(contentType)
|
||||
c.Request().SetBody([]byte(body))
|
||||
c.Request().Header.SetContentLength(len(body))
|
||||
require.False(t, c.Bind().Body(nil) == nil)
|
||||
require.Error(t, c.Bind().Body(nil))
|
||||
}
|
||||
|
||||
testDecodeParserError("invalid-content-type", "")
|
||||
|
@ -886,8 +886,8 @@ func Test_Bind_Body(t *testing.T) {
|
|||
c.Request().SetBody([]byte("data[0][name]=john&data[1][name]=doe"))
|
||||
c.Request().Header.SetContentLength(len(c.Body()))
|
||||
cq := new(CollectionQuery)
|
||||
require.Nil(t, c.Bind().Body(cq))
|
||||
require.Equal(t, 2, len(cq.Data))
|
||||
require.NoError(t, c.Bind().Body(cq))
|
||||
require.Len(t, cq.Data, 2)
|
||||
require.Equal(t, "john", cq.Data[0].Name)
|
||||
require.Equal(t, "doe", cq.Data[1].Name)
|
||||
|
||||
|
@ -896,8 +896,8 @@ func Test_Bind_Body(t *testing.T) {
|
|||
c.Request().SetBody([]byte("data.0.name=john&data.1.name=doe"))
|
||||
c.Request().Header.SetContentLength(len(c.Body()))
|
||||
cq = new(CollectionQuery)
|
||||
require.Nil(t, c.Bind().Body(cq))
|
||||
require.Equal(t, 2, len(cq.Data))
|
||||
require.NoError(t, c.Bind().Body(cq))
|
||||
require.Len(t, cq.Data, 2)
|
||||
require.Equal(t, "john", cq.Data[0].Name)
|
||||
require.Equal(t, "doe", cq.Data[1].Name)
|
||||
}
|
||||
|
@ -942,7 +942,7 @@ func Test_Bind_Body_WithSetParserDecoder(t *testing.T) {
|
|||
Title: "Existing title",
|
||||
Body: "Existing Body",
|
||||
}
|
||||
require.Nil(t, c.Bind().Body(&d))
|
||||
require.NoError(t, c.Bind().Body(&d))
|
||||
date := fmt.Sprintf("%v", d.Date)
|
||||
require.Equal(t, "{0 63743587200 <nil>}", date)
|
||||
require.Equal(t, "", d.Title)
|
||||
|
@ -975,7 +975,7 @@ func Benchmark_Bind_Body_JSON(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
err = c.Bind().Body(d)
|
||||
}
|
||||
require.Nil(b, err)
|
||||
require.NoError(b, err)
|
||||
require.Equal(b, "john", d.Name)
|
||||
}
|
||||
|
||||
|
@ -1001,7 +1001,7 @@ func Benchmark_Bind_Body_XML(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
err = c.Bind().Body(d)
|
||||
}
|
||||
require.Nil(b, err)
|
||||
require.NoError(b, err)
|
||||
require.Equal(b, "john", d.Name)
|
||||
}
|
||||
|
||||
|
@ -1027,7 +1027,7 @@ func Benchmark_Bind_Body_Form(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
err = c.Bind().Body(d)
|
||||
}
|
||||
require.Nil(b, err)
|
||||
require.NoError(b, err)
|
||||
require.Equal(b, "john", d.Name)
|
||||
}
|
||||
|
||||
|
@ -1054,7 +1054,7 @@ func Benchmark_Bind_Body_MultipartForm(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
err = c.Bind().Body(d)
|
||||
}
|
||||
require.Nil(b, err)
|
||||
require.NoError(b, err)
|
||||
require.Equal(b, "john", d.Name)
|
||||
}
|
||||
|
||||
|
@ -1077,7 +1077,7 @@ func Benchmark_Bind_Body_Form_Map(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
err = c.Bind().Body(&d)
|
||||
}
|
||||
require.Nil(b, err)
|
||||
require.NoError(b, err)
|
||||
require.Equal(b, "john", d["name"])
|
||||
}
|
||||
|
||||
|
@ -1214,19 +1214,19 @@ func Test_Bind_Cookie(t *testing.T) {
|
|||
c.Request().Header.SetCookie("Name", "John Doe")
|
||||
c.Request().Header.SetCookie("Hobby", "golang,fiber")
|
||||
q := new(Cookie)
|
||||
require.Nil(t, c.Bind().Cookie(q))
|
||||
require.Equal(t, 2, len(q.Hobby))
|
||||
require.NoError(t, c.Bind().Cookie(q))
|
||||
require.Len(t, q.Hobby, 2)
|
||||
|
||||
c.Request().Header.DelCookie("hobby")
|
||||
c.Request().Header.SetCookie("Hobby", "golang,fiber,go")
|
||||
q = new(Cookie)
|
||||
require.Nil(t, c.Bind().Cookie(q))
|
||||
require.Equal(t, 3, len(q.Hobby))
|
||||
require.NoError(t, c.Bind().Cookie(q))
|
||||
require.Len(t, q.Hobby, 3)
|
||||
|
||||
empty := new(Cookie)
|
||||
c.Request().Header.DelCookie("hobby")
|
||||
require.Nil(t, c.Bind().Query(empty))
|
||||
require.Equal(t, 0, len(empty.Hobby))
|
||||
require.NoError(t, c.Bind().Query(empty))
|
||||
require.Empty(t, empty.Hobby)
|
||||
|
||||
type Cookie2 struct {
|
||||
Bool bool
|
||||
|
@ -1250,7 +1250,7 @@ func Test_Bind_Cookie(t *testing.T) {
|
|||
h2 := new(Cookie2)
|
||||
h2.Bool = true
|
||||
h2.Name = helloWorld
|
||||
require.Nil(t, c.Bind().Cookie(h2))
|
||||
require.NoError(t, c.Bind().Cookie(h2))
|
||||
require.Equal(t, "go,fiber", h2.Hobby)
|
||||
require.True(t, h2.Bool)
|
||||
require.Equal(t, "Jane Doe", h2.Name) // check value get overwritten
|
||||
|
@ -1282,19 +1282,19 @@ func Test_Bind_Cookie_Map(t *testing.T) {
|
|||
c.Request().Header.SetCookie("Name", "John Doe")
|
||||
c.Request().Header.SetCookie("Hobby", "golang,fiber")
|
||||
q := make(map[string][]string)
|
||||
require.Nil(t, c.Bind().Cookie(&q))
|
||||
require.Equal(t, 2, len(q["Hobby"]))
|
||||
require.NoError(t, c.Bind().Cookie(&q))
|
||||
require.Len(t, q["Hobby"], 2)
|
||||
|
||||
c.Request().Header.DelCookie("hobby")
|
||||
c.Request().Header.SetCookie("Hobby", "golang,fiber,go")
|
||||
q = make(map[string][]string)
|
||||
require.Nil(t, c.Bind().Cookie(&q))
|
||||
require.Equal(t, 3, len(q["Hobby"]))
|
||||
require.NoError(t, c.Bind().Cookie(&q))
|
||||
require.Len(t, q["Hobby"], 3)
|
||||
|
||||
empty := make(map[string][]string)
|
||||
c.Request().Header.DelCookie("hobby")
|
||||
require.Nil(t, c.Bind().Query(&empty))
|
||||
require.Equal(t, 0, len(empty["Hobby"]))
|
||||
require.NoError(t, c.Bind().Query(&empty))
|
||||
require.Empty(t, empty["Hobby"])
|
||||
}
|
||||
|
||||
// go test -run Test_Bind_Cookie_WithSetParserDecoder -v
|
||||
|
@ -1337,7 +1337,7 @@ func Test_Bind_Cookie_WithSetParserDecoder(t *testing.T) {
|
|||
c.Request().Header.SetCookie("Title", "CustomDateTest")
|
||||
c.Request().Header.SetCookie("Body", "October")
|
||||
|
||||
require.Nil(t, c.Bind().Cookie(r))
|
||||
require.NoError(t, c.Bind().Cookie(r))
|
||||
require.Equal(t, "CustomDateTest", r.Title)
|
||||
date := fmt.Sprintf("%v", r.Date)
|
||||
require.Equal(t, "{0 63753609600 <nil>}", date)
|
||||
|
@ -1348,7 +1348,7 @@ func Test_Bind_Cookie_WithSetParserDecoder(t *testing.T) {
|
|||
Title: "Existing title",
|
||||
Body: "Existing Body",
|
||||
}
|
||||
require.Nil(t, c.Bind().Cookie(r))
|
||||
require.NoError(t, c.Bind().Cookie(r))
|
||||
require.Equal(t, "", r.Title)
|
||||
}
|
||||
|
||||
|
@ -1371,7 +1371,7 @@ func Test_Bind_Cookie_Schema(t *testing.T) {
|
|||
c.Request().Header.SetCookie("Name", "tom")
|
||||
c.Request().Header.SetCookie("Nested.Age", "10")
|
||||
q := new(Cookie1)
|
||||
require.Nil(t, c.Bind().Cookie(q))
|
||||
require.NoError(t, c.Bind().Cookie(q))
|
||||
|
||||
c.Request().Header.DelCookie("Name")
|
||||
q = new(Cookie1)
|
||||
|
@ -1381,7 +1381,7 @@ func Test_Bind_Cookie_Schema(t *testing.T) {
|
|||
c.Request().Header.DelCookie("Nested.Age")
|
||||
c.Request().Header.SetCookie("Nested.Agex", "10")
|
||||
q = new(Cookie1)
|
||||
require.Nil(t, c.Bind().Cookie(q))
|
||||
require.NoError(t, c.Bind().Cookie(q))
|
||||
|
||||
c.Request().Header.DelCookie("Nested.Agex")
|
||||
q = new(Cookie1)
|
||||
|
@ -1401,11 +1401,11 @@ func Test_Bind_Cookie_Schema(t *testing.T) {
|
|||
c.Request().Header.SetCookie("Nested.Age", "10")
|
||||
|
||||
h2 := new(Cookie2)
|
||||
require.Nil(t, c.Bind().Cookie(h2))
|
||||
require.NoError(t, c.Bind().Cookie(h2))
|
||||
|
||||
c.Request().Header.DelCookie("Name")
|
||||
h2 = new(Cookie2)
|
||||
require.Nil(t, c.Bind().Cookie(h2))
|
||||
require.NoError(t, c.Bind().Cookie(h2))
|
||||
|
||||
c.Request().Header.DelCookie("Name")
|
||||
c.Request().Header.DelCookie("Nested.Age")
|
||||
|
@ -1420,7 +1420,7 @@ func Test_Bind_Cookie_Schema(t *testing.T) {
|
|||
c.Request().Header.SetCookie("Val", "1")
|
||||
c.Request().Header.SetCookie("Next.Val", "3")
|
||||
n := new(Node)
|
||||
require.Nil(t, c.Bind().Cookie(n))
|
||||
require.NoError(t, c.Bind().Cookie(n))
|
||||
require.Equal(t, 1, n.Value)
|
||||
require.Equal(t, 3, n.Next.Value)
|
||||
|
||||
|
@ -1433,7 +1433,7 @@ func Test_Bind_Cookie_Schema(t *testing.T) {
|
|||
c.Request().Header.SetCookie("Next.Value", "2")
|
||||
n = new(Node)
|
||||
n.Next = new(Node)
|
||||
require.Nil(t, c.Bind().Cookie(n))
|
||||
require.NoError(t, c.Bind().Cookie(n))
|
||||
require.Equal(t, 3, n.Value)
|
||||
require.Equal(t, 0, n.Next.Value)
|
||||
}
|
||||
|
@ -1464,7 +1464,7 @@ func Benchmark_Bind_Cookie(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
err = c.Bind().Cookie(q)
|
||||
}
|
||||
require.Nil(b, err)
|
||||
require.NoError(b, err)
|
||||
}
|
||||
|
||||
// go test -v -run=^$ -bench=Benchmark_Bind_Cookie_Map -benchmem -count=4
|
||||
|
@ -1488,7 +1488,7 @@ func Benchmark_Bind_Cookie_Map(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
err = c.Bind().Cookie(&q)
|
||||
}
|
||||
require.Nil(b, err)
|
||||
require.NoError(b, err)
|
||||
}
|
||||
|
||||
// custom binder for testing
|
||||
|
@ -1524,8 +1524,8 @@ func Test_Bind_CustomBinder(t *testing.T) {
|
|||
c.Request().Header.SetContentLength(len(body))
|
||||
d := new(Demo)
|
||||
|
||||
require.Nil(t, c.Bind().Body(d))
|
||||
require.Nil(t, c.Bind().Custom("custom", d))
|
||||
require.NoError(t, c.Bind().Body(d))
|
||||
require.NoError(t, c.Bind().Custom("custom", d))
|
||||
require.Equal(t, ErrCustomBinderNotFound, c.Bind().Custom("not_custom", d))
|
||||
require.Equal(t, "john", d.Name)
|
||||
}
|
||||
|
@ -1581,7 +1581,7 @@ func Test_Bind_StructValidator(t *testing.T) {
|
|||
|
||||
rq = new(simpleQuery)
|
||||
c.Request().URI().SetQueryString("name=john")
|
||||
require.Nil(t, c.Bind().Query(rq))
|
||||
require.NoError(t, c.Bind().Query(rq))
|
||||
}
|
||||
|
||||
// go test -run Test_Bind_RepeatParserWithSameStruct -v
|
||||
|
@ -1600,11 +1600,11 @@ func Test_Bind_RepeatParserWithSameStruct(t *testing.T) {
|
|||
r := new(Request)
|
||||
|
||||
c.Request().URI().SetQueryString("query_param=query_param")
|
||||
require.Equal(t, nil, c.Bind().Query(r))
|
||||
require.NoError(t, c.Bind().Query(r))
|
||||
require.Equal(t, "query_param", r.QueryParam)
|
||||
|
||||
c.Request().Header.Add("header_param", "header_param")
|
||||
require.Equal(t, nil, c.Bind().Header(r))
|
||||
require.NoError(t, c.Bind().Header(r))
|
||||
require.Equal(t, "header_param", r.HeaderParam)
|
||||
|
||||
var gzipJSON bytes.Buffer
|
||||
|
@ -1617,7 +1617,7 @@ func Test_Bind_RepeatParserWithSameStruct(t *testing.T) {
|
|||
c.Request().Header.Set(HeaderContentEncoding, "gzip")
|
||||
c.Request().SetBody(gzipJSON.Bytes())
|
||||
c.Request().Header.SetContentLength(len(gzipJSON.Bytes()))
|
||||
require.Equal(t, nil, c.Bind().Body(r))
|
||||
require.NoError(t, c.Bind().Body(r))
|
||||
require.Equal(t, "body_param", r.BodyParam)
|
||||
c.Request().Header.Del(HeaderContentEncoding)
|
||||
|
||||
|
@ -1625,7 +1625,7 @@ func Test_Bind_RepeatParserWithSameStruct(t *testing.T) {
|
|||
c.Request().Header.SetContentType(contentType)
|
||||
c.Request().SetBody([]byte(body))
|
||||
c.Request().Header.SetContentLength(len(body))
|
||||
require.Equal(t, nil, c.Bind().Body(r))
|
||||
require.NoError(t, c.Bind().Body(r))
|
||||
require.Equal(t, "body_param", r.BodyParam)
|
||||
}
|
||||
|
||||
|
|
163
client_test.go
163
client_test.go
|
@ -6,6 +6,7 @@ import (
|
|||
"crypto/tls"
|
||||
"encoding/base64"
|
||||
"encoding/json"
|
||||
"encoding/xml"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
|
@ -20,6 +21,7 @@ import (
|
|||
|
||||
"github.com/gofiber/fiber/v3/internal/tlstest"
|
||||
"github.com/stretchr/testify/require"
|
||||
"github.com/valyala/fasthttp"
|
||||
"github.com/valyala/fasthttp/fasthttputil"
|
||||
)
|
||||
|
||||
|
@ -35,7 +37,7 @@ func Test_Client_Invalid_URL(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -47,8 +49,9 @@ func Test_Client_Invalid_URL(t *testing.T) {
|
|||
_, body, errs := a.String()
|
||||
|
||||
require.Equal(t, "", body)
|
||||
require.Equal(t, 1, len(errs))
|
||||
require.Equal(t, "missing required Host header in request", errs[0].Error())
|
||||
require.Len(t, errs, 1)
|
||||
require.Error(t, errs[0],
|
||||
`Expected error "missing required Host header in request"`)
|
||||
}
|
||||
|
||||
func Test_Client_Unsupported_Protocol(t *testing.T) {
|
||||
|
@ -59,9 +62,8 @@ func Test_Client_Unsupported_Protocol(t *testing.T) {
|
|||
_, body, errs := a.String()
|
||||
|
||||
require.Equal(t, "", body)
|
||||
require.Equal(t, 1, len(errs))
|
||||
require.Equal(t, `unsupported protocol "ftp". http and https are supported`,
|
||||
errs[0].Error())
|
||||
require.Len(t, errs, 1)
|
||||
require.ErrorContains(t, errs[0], `unsupported protocol "ftp". http and https are supported`)
|
||||
}
|
||||
|
||||
func Test_Client_Get(t *testing.T) {
|
||||
|
@ -76,7 +78,7 @@ func Test_Client_Get(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -90,7 +92,7 @@ func Test_Client_Get(t *testing.T) {
|
|||
|
||||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, "example.com", body)
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -106,7 +108,7 @@ func Test_Client_Head(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -119,7 +121,7 @@ func Test_Client_Head(t *testing.T) {
|
|||
|
||||
require.Equal(t, StatusAccepted, code)
|
||||
require.Equal(t, "", body)
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -136,7 +138,7 @@ func Test_Client_Post(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -155,7 +157,7 @@ func Test_Client_Post(t *testing.T) {
|
|||
|
||||
require.Equal(t, StatusCreated, code)
|
||||
require.Equal(t, "bar", body)
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
|
||||
ReleaseArgs(args)
|
||||
}
|
||||
|
@ -173,7 +175,7 @@ func Test_Client_Put(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -192,7 +194,7 @@ func Test_Client_Put(t *testing.T) {
|
|||
|
||||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, "bar", body)
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
|
||||
ReleaseArgs(args)
|
||||
}
|
||||
|
@ -210,7 +212,7 @@ func Test_Client_Patch(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, nil, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -229,7 +231,7 @@ func Test_Client_Patch(t *testing.T) {
|
|||
|
||||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, "bar", body)
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
|
||||
ReleaseArgs(args)
|
||||
}
|
||||
|
@ -248,7 +250,7 @@ func Test_Client_Delete(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -264,7 +266,7 @@ func Test_Client_Delete(t *testing.T) {
|
|||
|
||||
require.Equal(t, StatusNoContent, code)
|
||||
require.Equal(t, "", body)
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
|
||||
ReleaseArgs(args)
|
||||
}
|
||||
|
@ -282,7 +284,7 @@ func Test_Client_UserAgent(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, nil, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -298,7 +300,7 @@ func Test_Client_UserAgent(t *testing.T) {
|
|||
|
||||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, defaultUserAgent, body)
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -316,7 +318,7 @@ func Test_Client_UserAgent(t *testing.T) {
|
|||
|
||||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, "ua", body)
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
ReleaseClient(c)
|
||||
}
|
||||
})
|
||||
|
@ -438,7 +440,7 @@ func Test_Client_Agent_Host(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -455,7 +457,7 @@ func Test_Client_Agent_Host(t *testing.T) {
|
|||
|
||||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, "example.com", body)
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
}
|
||||
|
||||
func Test_Client_Agent_QueryString(t *testing.T) {
|
||||
|
@ -543,7 +545,7 @@ func Test_Client_Agent_Custom_Response(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -556,7 +558,7 @@ func Test_Client_Agent_Custom_Response(t *testing.T) {
|
|||
req.Header.SetMethod(MethodGet)
|
||||
req.SetRequestURI("http://example.com")
|
||||
|
||||
require.Nil(t, a.Parse())
|
||||
require.NoError(t, a.Parse())
|
||||
|
||||
a.HostClient.Dial = func(addr string) (net.Conn, error) { return ln.Dial() }
|
||||
|
||||
|
@ -566,7 +568,7 @@ func Test_Client_Agent_Custom_Response(t *testing.T) {
|
|||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, "custom", body)
|
||||
require.Equal(t, "custom", string(resp.Body()))
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
|
||||
ReleaseResponse(resp)
|
||||
}
|
||||
|
@ -584,7 +586,7 @@ func Test_Client_Agent_Dest(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, nil, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -602,7 +604,7 @@ func Test_Client_Agent_Dest(t *testing.T) {
|
|||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, "dest", body)
|
||||
require.Equal(t, "de", string(dest))
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
})
|
||||
|
||||
t.Run("enough dest", func(t *testing.T) {
|
||||
|
@ -618,7 +620,7 @@ func Test_Client_Agent_Dest(t *testing.T) {
|
|||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, "dest", body)
|
||||
require.Equal(t, "destar", string(dest))
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -663,7 +665,7 @@ func Test_Client_Agent_RetryIf(t *testing.T) {
|
|||
app := New()
|
||||
|
||||
go func() {
|
||||
require.Nil(t, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -691,8 +693,8 @@ func Test_Client_Agent_RetryIf(t *testing.T) {
|
|||
}
|
||||
|
||||
_, _, errs := a.String()
|
||||
require.Equal(t, dialsCount, 4)
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Equal(t, 4, dialsCount)
|
||||
require.Empty(t, errs)
|
||||
}
|
||||
|
||||
func Test_Client_Agent_Json(t *testing.T) {
|
||||
|
@ -733,8 +735,9 @@ func Test_Client_Agent_Json_Error(t *testing.T) {
|
|||
_, body, errs := a.String()
|
||||
|
||||
require.Equal(t, "", body)
|
||||
require.Equal(t, 1, len(errs))
|
||||
require.Equal(t, "json: unsupported type: complex128", errs[0].Error())
|
||||
require.Len(t, errs, 1)
|
||||
wantErr := new(json.UnsupportedTypeError)
|
||||
require.ErrorAs(t, errs[0], &wantErr)
|
||||
}
|
||||
|
||||
func Test_Client_Agent_XML(t *testing.T) {
|
||||
|
@ -758,10 +761,10 @@ func Test_Client_Agent_XML_Error(t *testing.T) {
|
|||
XML(complex(1, 1))
|
||||
|
||||
_, body, errs := a.String()
|
||||
|
||||
require.Equal(t, "", body)
|
||||
require.Equal(t, 1, len(errs))
|
||||
require.Equal(t, "xml: unsupported type: complex128", errs[0].Error())
|
||||
require.Len(t, errs, 1)
|
||||
wantErr := new(xml.UnsupportedTypeError)
|
||||
require.ErrorAs(t, errs[0], &wantErr)
|
||||
}
|
||||
|
||||
func Test_Client_Agent_Form(t *testing.T) {
|
||||
|
@ -803,7 +806,7 @@ func Test_Client_Agent_MultipartForm(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, nil, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -822,7 +825,7 @@ func Test_Client_Agent_MultipartForm(t *testing.T) {
|
|||
|
||||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, "--myBoundary\r\nContent-Disposition: form-data; name=\"foo\"\r\n\r\nbar\r\n--myBoundary--\r\n", body)
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
ReleaseArgs(args)
|
||||
}
|
||||
|
||||
|
@ -840,7 +843,7 @@ func Test_Client_Agent_MultipartForm_Errors(t *testing.T) {
|
|||
a.FileData(ff1, ff2).
|
||||
MultipartForm(args)
|
||||
|
||||
require.Equal(t, 4, len(a.errs))
|
||||
require.Len(t, a.errs, 4)
|
||||
ReleaseArgs(args)
|
||||
}
|
||||
|
||||
|
@ -856,7 +859,7 @@ func Test_Client_Agent_MultipartForm_SendFiles(t *testing.T) {
|
|||
|
||||
fh1, err := c.FormFile("field1")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, fh1.Filename, "name")
|
||||
require.Equal(t, "name", fh1.Filename)
|
||||
buf := make([]byte, fh1.Size)
|
||||
f, err := fh1.Open()
|
||||
require.NoError(t, err)
|
||||
|
@ -880,7 +883,7 @@ func Test_Client_Agent_MultipartForm_SendFiles(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, nil, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -903,7 +906,7 @@ func Test_Client_Agent_MultipartForm_SendFiles(t *testing.T) {
|
|||
|
||||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, "multipart form files", body)
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
|
||||
ReleaseFormFile(ff)
|
||||
}
|
||||
|
@ -948,8 +951,8 @@ func Test_Client_Agent_Multipart_Invalid_Boundary(t *testing.T) {
|
|||
Boundary("*").
|
||||
MultipartForm(nil)
|
||||
|
||||
require.Equal(t, 1, len(a.errs))
|
||||
require.Equal(t, "mime: invalid boundary character", a.errs[0].Error())
|
||||
require.Len(t, a.errs, 1)
|
||||
require.ErrorContains(t, a.errs[0], "mime: invalid boundary character")
|
||||
}
|
||||
|
||||
func Test_Client_Agent_SendFile_Error(t *testing.T) {
|
||||
|
@ -958,8 +961,8 @@ func Test_Client_Agent_SendFile_Error(t *testing.T) {
|
|||
a := Post("http://example.com").
|
||||
SendFile("non-exist-file!", "")
|
||||
|
||||
require.Equal(t, 1, len(a.errs))
|
||||
require.True(t, strings.Contains(a.errs[0].Error(), "open non-exist-file!"))
|
||||
require.Len(t, a.errs, 1)
|
||||
require.ErrorIs(t, a.errs[0], os.ErrNotExist)
|
||||
}
|
||||
|
||||
func Test_Client_Debug(t *testing.T) {
|
||||
|
@ -978,12 +981,12 @@ func Test_Client_Debug(t *testing.T) {
|
|||
|
||||
str := output.String()
|
||||
|
||||
require.True(t, strings.Contains(str, "Connected to example.com(InmemoryListener)"))
|
||||
require.True(t, strings.Contains(str, "GET / HTTP/1.1"))
|
||||
require.True(t, strings.Contains(str, "User-Agent: fiber"))
|
||||
require.True(t, strings.Contains(str, "Host: example.com\r\n\r\n"))
|
||||
require.True(t, strings.Contains(str, "HTTP/1.1 200 OK"))
|
||||
require.True(t, strings.Contains(str, "Content-Type: text/plain; charset=utf-8\r\nContent-Length: 5\r\n\r\ndebug"))
|
||||
require.Contains(t, str, "Connected to example.com(InmemoryListener)")
|
||||
require.Contains(t, str, "GET / HTTP/1.1")
|
||||
require.Contains(t, str, "User-Agent: fiber")
|
||||
require.Contains(t, str, "Host: example.com\r\n\r\n")
|
||||
require.Contains(t, str, "HTTP/1.1 200 OK")
|
||||
require.Contains(t, str, "Content-Type: text/plain; charset=utf-8\r\nContent-Length: 5\r\n\r\ndebug")
|
||||
}
|
||||
|
||||
func Test_Client_Agent_Timeout(t *testing.T) {
|
||||
|
@ -999,7 +1002,7 @@ func Test_Client_Agent_Timeout(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, nil, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -1012,8 +1015,8 @@ func Test_Client_Agent_Timeout(t *testing.T) {
|
|||
_, body, errs := a.String()
|
||||
|
||||
require.Equal(t, "", body)
|
||||
require.Equal(t, 1, len(errs))
|
||||
require.Equal(t, "timeout", errs[0].Error())
|
||||
require.Len(t, errs, 1)
|
||||
require.ErrorIs(t, errs[0], fasthttp.ErrTimeout)
|
||||
}
|
||||
|
||||
func Test_Client_Agent_Reuse(t *testing.T) {
|
||||
|
@ -1028,7 +1031,7 @@ func Test_Client_Agent_Reuse(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, nil, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -1042,13 +1045,13 @@ func Test_Client_Agent_Reuse(t *testing.T) {
|
|||
|
||||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, "reuse", body)
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
|
||||
code, body, errs = a.String()
|
||||
|
||||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, "reuse", body)
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
}
|
||||
|
||||
func Test_Client_Agent_InsecureSkipVerify(t *testing.T) {
|
||||
|
@ -1074,7 +1077,7 @@ func Test_Client_Agent_InsecureSkipVerify(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, nil, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -1084,7 +1087,7 @@ func Test_Client_Agent_InsecureSkipVerify(t *testing.T) {
|
|||
InsecureSkipVerify().
|
||||
String()
|
||||
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, "ignore tls", body)
|
||||
}
|
||||
|
@ -1107,7 +1110,7 @@ func Test_Client_Agent_TLS(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, nil, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -1116,7 +1119,7 @@ func Test_Client_Agent_TLS(t *testing.T) {
|
|||
TLSConfig(clientTLSConf).
|
||||
String()
|
||||
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, "tls", body)
|
||||
}
|
||||
|
@ -1139,7 +1142,7 @@ func Test_Client_Agent_MaxRedirectsCount(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, nil, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -1155,7 +1158,7 @@ func Test_Client_Agent_MaxRedirectsCount(t *testing.T) {
|
|||
|
||||
require.Equal(t, 200, code)
|
||||
require.Equal(t, "redirect", body)
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
})
|
||||
|
||||
t.Run("error", func(t *testing.T) {
|
||||
|
@ -1168,8 +1171,8 @@ func Test_Client_Agent_MaxRedirectsCount(t *testing.T) {
|
|||
_, body, errs := a.String()
|
||||
|
||||
require.Equal(t, "", body)
|
||||
require.Equal(t, 1, len(errs))
|
||||
require.Equal(t, "too many redirects detected when doing the request", errs[0].Error())
|
||||
require.Len(t, errs, 1)
|
||||
require.ErrorIs(t, errs[0], fasthttp.ErrTooManyRedirects)
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -1189,7 +1192,7 @@ func Test_Client_Agent_Struct(t *testing.T) {
|
|||
})
|
||||
|
||||
go func() {
|
||||
require.Nil(t, nil, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -1207,7 +1210,7 @@ func Test_Client_Agent_Struct(t *testing.T) {
|
|||
|
||||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, `{"success":true}`, string(body))
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
require.True(t, d.Success)
|
||||
})
|
||||
|
||||
|
@ -1215,15 +1218,17 @@ func Test_Client_Agent_Struct(t *testing.T) {
|
|||
t.Parallel()
|
||||
a := Get("http://example.com")
|
||||
|
||||
errPre := errors.New("pre errors")
|
||||
|
||||
a.HostClient.Dial = func(addr string) (net.Conn, error) { return ln.Dial() }
|
||||
a.errs = append(a.errs, errors.New("pre errors"))
|
||||
a.errs = append(a.errs, errPre)
|
||||
|
||||
var d data
|
||||
_, body, errs := a.Struct(&d)
|
||||
|
||||
require.Equal(t, "", string(body))
|
||||
require.Equal(t, 1, len(errs))
|
||||
require.Equal(t, "pre errors", errs[0].Error())
|
||||
require.Len(t, errs, 1)
|
||||
require.ErrorIs(t, errs[0], errPre)
|
||||
require.False(t, d.Success)
|
||||
})
|
||||
|
||||
|
@ -1239,8 +1244,10 @@ func Test_Client_Agent_Struct(t *testing.T) {
|
|||
|
||||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, `{"success"`, string(body))
|
||||
require.Equal(t, 1, len(errs))
|
||||
require.Equal(t, "unexpected end of JSON input", errs[0].Error())
|
||||
require.Len(t, errs, 1)
|
||||
wantErr := new(json.SyntaxError)
|
||||
require.ErrorAs(t, errs[0], &wantErr)
|
||||
require.EqualValues(t, 10, wantErr.Offset)
|
||||
})
|
||||
|
||||
t.Run("nil jsonDecoder", func(t *testing.T) {
|
||||
|
@ -1258,7 +1265,7 @@ func Test_Client_Agent_Struct(t *testing.T) {
|
|||
code, body, errs := a.Struct(&d)
|
||||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, `{"success":true}`, string(body))
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
require.True(t, d.Success)
|
||||
})
|
||||
}
|
||||
|
@ -1268,7 +1275,7 @@ func Test_Client_Agent_Parse(t *testing.T) {
|
|||
|
||||
a := Get("https://example.com:10443")
|
||||
|
||||
require.Nil(t, a.Parse())
|
||||
require.NoError(t, a.Parse())
|
||||
}
|
||||
|
||||
func testAgent(t *testing.T, handler Handler, wrapAgent func(agent *Agent), excepted string, count ...int) {
|
||||
|
@ -1281,7 +1288,7 @@ func testAgent(t *testing.T, handler Handler, wrapAgent func(agent *Agent), exce
|
|||
app.Get("/", handler)
|
||||
|
||||
go func() {
|
||||
require.Nil(t, nil, app.Listener(ln, ListenConfig{
|
||||
require.NoError(t, app.Listener(ln, ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
}))
|
||||
}()
|
||||
|
@ -1302,7 +1309,7 @@ func testAgent(t *testing.T, handler Handler, wrapAgent func(agent *Agent), exce
|
|||
|
||||
require.Equal(t, StatusOK, code)
|
||||
require.Equal(t, excepted, body)
|
||||
require.Equal(t, 0, len(errs))
|
||||
require.Empty(t, errs)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
138
ctx_test.go
138
ctx_test.go
|
@ -34,6 +34,8 @@ import (
|
|||
"github.com/valyala/fasthttp"
|
||||
)
|
||||
|
||||
const epsilon = 0.001
|
||||
|
||||
// go test -run Test_Ctx_Accepts
|
||||
func Test_Ctx_Accepts(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
@ -995,7 +997,7 @@ func Test_Ctx_FormFile(t *testing.T) {
|
|||
f, err := fh.Open()
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
require.Equal(t, nil, f.Close())
|
||||
require.NoError(t, f.Close())
|
||||
}()
|
||||
|
||||
b := new(bytes.Buffer)
|
||||
|
@ -1036,8 +1038,8 @@ func Test_Ctx_FormValue(t *testing.T) {
|
|||
|
||||
body := &bytes.Buffer{}
|
||||
writer := multipart.NewWriter(body)
|
||||
require.Nil(t, writer.WriteField("name", "john"))
|
||||
require.Nil(t, writer.Close())
|
||||
require.NoError(t, writer.WriteField("name", "john"))
|
||||
require.NoError(t, writer.Close())
|
||||
|
||||
req := httptest.NewRequest(MethodPost, "/test", body)
|
||||
req.Header.Set("Content-Type", fmt.Sprintf("multipart/form-data; boundary=%s", writer.Boundary()))
|
||||
|
@ -1550,11 +1552,11 @@ func Test_Ctx_IPs(t *testing.T) {
|
|||
|
||||
// empty header
|
||||
c.Request().Header.Set(HeaderXForwardedFor, "")
|
||||
require.Equal(t, 0, len(c.IPs()))
|
||||
require.Empty(t, c.IPs())
|
||||
|
||||
// missing header
|
||||
c.Request()
|
||||
require.Equal(t, 0, len(c.IPs()))
|
||||
require.Empty(t, c.IPs())
|
||||
}
|
||||
|
||||
func Test_Ctx_IPs_With_IP_Validation(t *testing.T) {
|
||||
|
@ -1586,11 +1588,11 @@ func Test_Ctx_IPs_With_IP_Validation(t *testing.T) {
|
|||
|
||||
// empty header
|
||||
c.Request().Header.Set(HeaderXForwardedFor, "")
|
||||
require.Equal(t, 0, len(c.IPs()))
|
||||
require.Empty(t, c.IPs())
|
||||
|
||||
// missing header
|
||||
c.Request()
|
||||
require.Equal(t, 0, len(c.IPs()))
|
||||
require.Empty(t, c.IPs())
|
||||
}
|
||||
|
||||
// go test -v -run=^$ -bench=Benchmark_Ctx_IPs -benchmem -count=4
|
||||
|
@ -1875,7 +1877,7 @@ func Test_Ctx_MultipartForm(t *testing.T) {
|
|||
body := &bytes.Buffer{}
|
||||
writer := multipart.NewWriter(body)
|
||||
|
||||
require.Nil(t, writer.WriteField("name", "john"))
|
||||
require.NoError(t, writer.WriteField("name", "john"))
|
||||
require.NoError(t, writer.Close())
|
||||
|
||||
req := httptest.NewRequest(MethodPost, "/test", body)
|
||||
|
@ -2505,20 +2507,20 @@ func Test_Ctx_QueryFloat(t *testing.T) {
|
|||
c.Request().URI().SetQueryString("name=alex&amount=32.23&id=")
|
||||
|
||||
// float32
|
||||
require.Equal(t, float32(32.23), Query[float32](c, "amount"))
|
||||
require.Equal(t, float32(32.23), Query[float32](c, "amount", 3.123))
|
||||
require.Equal(t, float32(87.123), Query[float32](c, "name", 87.123))
|
||||
require.Equal(t, float32(0), Query[float32](c, "name"))
|
||||
require.Equal(t, float32(12.87), Query[float32](c, "id", 12.87))
|
||||
require.Equal(t, float32(0), Query[float32](c, "id"))
|
||||
require.InEpsilon(t, float32(32.23), Query[float32](c, "amount"), epsilon)
|
||||
require.InEpsilon(t, float32(32.23), Query[float32](c, "amount", 3.123), epsilon)
|
||||
require.InEpsilon(t, float32(87.123), Query[float32](c, "name", 87.123), epsilon)
|
||||
require.InDelta(t, float32(0), Query[float32](c, "name"), 0)
|
||||
require.InEpsilon(t, float32(12.87), Query[float32](c, "id", 12.87), epsilon)
|
||||
require.InDelta(t, float32(0), Query[float32](c, "id"), 0)
|
||||
|
||||
// float64
|
||||
require.Equal(t, 32.23, Query[float64](c, "amount"))
|
||||
require.Equal(t, 32.23, Query[float64](c, "amount", 3.123))
|
||||
require.Equal(t, 87.123, Query[float64](c, "name", 87.123))
|
||||
require.Equal(t, float64(0), Query[float64](c, "name"))
|
||||
require.Equal(t, 12.87, Query[float64](c, "id", 12.87))
|
||||
require.Equal(t, float64(0), Query[float64](c, "id"))
|
||||
require.InEpsilon(t, 32.23, Query[float64](c, "amount"), epsilon)
|
||||
require.InEpsilon(t, 32.23, Query[float64](c, "amount", 3.123), epsilon)
|
||||
require.InEpsilon(t, 87.123, Query[float64](c, "name", 87.123), epsilon)
|
||||
require.InDelta(t, float64(0), Query[float64](c, "name"), 0)
|
||||
require.InEpsilon(t, 12.87, Query[float64](c, "id", 12.87), epsilon)
|
||||
require.InDelta(t, float64(0), Query[float64](c, "id"), 0)
|
||||
}
|
||||
|
||||
// go test -v -run=^$ -bench=Benchmark_Ctx_QueryFloat -benchmem -count=4
|
||||
|
@ -2532,7 +2534,7 @@ func Benchmark_Ctx_QueryFloat(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
res = Query[float32](c, "age")
|
||||
}
|
||||
require.Equal(b, float32(8), res)
|
||||
require.InEpsilon(b, float32(8), res, epsilon)
|
||||
}
|
||||
|
||||
// go test -run Test_Ctx_QueryBool
|
||||
|
@ -2543,12 +2545,12 @@ func Test_Ctx_QueryBool(t *testing.T) {
|
|||
|
||||
c.Request().URI().SetQueryString("name=alex&want_pizza=false&id=")
|
||||
|
||||
require.Equal(t, false, Query[bool](c, "want_pizza"))
|
||||
require.Equal(t, false, Query[bool](c, "want_pizza", true))
|
||||
require.Equal(t, false, Query[bool](c, "name"))
|
||||
require.Equal(t, true, Query[bool](c, "name", true))
|
||||
require.Equal(t, false, Query[bool](c, "id"))
|
||||
require.Equal(t, true, Query[bool](c, "id", true))
|
||||
require.False(t, Query[bool](c, "want_pizza"))
|
||||
require.False(t, Query[bool](c, "want_pizza", true))
|
||||
require.False(t, Query[bool](c, "name"))
|
||||
require.True(t, Query[bool](c, "name", true))
|
||||
require.False(t, Query[bool](c, "id"))
|
||||
require.True(t, Query[bool](c, "id", true))
|
||||
}
|
||||
|
||||
// go test -v -run=^$ -bench=Benchmark_Ctx_QueryBool -benchmem -count=4
|
||||
|
@ -2562,7 +2564,7 @@ func Benchmark_Ctx_QueryBool(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
res = Query[bool](c, "age")
|
||||
}
|
||||
require.Equal(b, false, res)
|
||||
require.False(b, res)
|
||||
}
|
||||
|
||||
// go test -run Test_Ctx_QueryString
|
||||
|
@ -2655,12 +2657,12 @@ func Test_Ctx_QueryWithoutGenericDataType(t *testing.T) {
|
|||
require.Equal(t, uint32(3), Query(c, "unknown", uint32(3)))
|
||||
require.Equal(t, uint64(32), Query(c, "id", uint64(3)))
|
||||
require.Equal(t, uint64(3), Query(c, "unknown", uint64(3)))
|
||||
require.Equal(t, 32.23, Query(c, "amount", 3.123))
|
||||
require.Equal(t, 3.123, Query(c, "unknown", 3.123))
|
||||
require.Equal(t, float32(32.23), Query(c, "amount", float32(3.123)))
|
||||
require.Equal(t, float32(3.123), Query(c, "unknown", float32(3.123)))
|
||||
require.Equal(t, true, Query(c, "isAgent", false))
|
||||
require.Equal(t, false, Query(c, "unknown", false))
|
||||
require.InEpsilon(t, 32.23, Query(c, "amount", 3.123), epsilon)
|
||||
require.InEpsilon(t, 3.123, Query(c, "unknown", 3.123), epsilon)
|
||||
require.InEpsilon(t, float32(32.23), Query(c, "amount", float32(3.123)), epsilon)
|
||||
require.InEpsilon(t, float32(3.123), Query(c, "unknown", float32(3.123)), epsilon)
|
||||
require.True(t, Query(c, "isAgent", false))
|
||||
require.False(t, Query(c, "unknown", false))
|
||||
require.Equal(t, []byte("alex"), Query(c, "name", []byte("john")))
|
||||
require.Equal(t, []byte("john"), Query(c, "unknown", []byte("john")))
|
||||
}
|
||||
|
@ -2764,7 +2766,7 @@ func Test_Ctx_Route(t *testing.T) {
|
|||
|
||||
require.Equal(t, "/", c.Route().Path)
|
||||
require.Equal(t, MethodGet, c.Route().Method)
|
||||
require.Equal(t, 0, len(c.Route().Handlers))
|
||||
require.Empty(t, c.Route().Handlers)
|
||||
}
|
||||
|
||||
// go test -run Test_Ctx_RouteNormalized
|
||||
|
@ -2929,8 +2931,8 @@ func Test_Ctx_ClearCookie(t *testing.T) {
|
|||
c.Request().Header.Set(HeaderCookie, "test1=dummy")
|
||||
c.Request().Header.Set(HeaderCookie, "test2=dummy")
|
||||
c.ClearCookie()
|
||||
require.True(t, strings.Contains(string(c.Response().Header.Peek(HeaderSetCookie)), "test1=; expires="))
|
||||
require.True(t, strings.Contains(string(c.Response().Header.Peek(HeaderSetCookie)), "test2=; expires="))
|
||||
require.Contains(t, string(c.Response().Header.Peek(HeaderSetCookie)), "test1=; expires=")
|
||||
require.Contains(t, string(c.Response().Header.Peek(HeaderSetCookie)), "test2=; expires=")
|
||||
}
|
||||
|
||||
// go test -race -run Test_Ctx_Download
|
||||
|
@ -2939,7 +2941,7 @@ func Test_Ctx_Download(t *testing.T) {
|
|||
app := New()
|
||||
c := app.NewCtx(&fasthttp.RequestCtx{})
|
||||
|
||||
require.Equal(t, nil, c.Download("ctx.go", "Awesome File!"))
|
||||
require.NoError(t, c.Download("ctx.go", "Awesome File!"))
|
||||
|
||||
f, err := os.Open("./ctx.go")
|
||||
require.NoError(t, err)
|
||||
|
@ -2965,7 +2967,7 @@ func Test_Ctx_SendFile(t *testing.T) {
|
|||
f, err := os.Open("./ctx.go")
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
require.NoError(t, nil, f.Close())
|
||||
require.NoError(t, f.Close())
|
||||
}()
|
||||
expectFileContent, err := io.ReadAll(f)
|
||||
require.NoError(t, err)
|
||||
|
@ -3008,7 +3010,7 @@ func Test_Ctx_SendFile_404(t *testing.T) {
|
|||
app := New()
|
||||
app.Get("/", func(c Ctx) error {
|
||||
err := c.SendFile(filepath.FromSlash("john_dow.go/"))
|
||||
require.False(t, err == nil)
|
||||
require.Error(t, err)
|
||||
return err
|
||||
})
|
||||
|
||||
|
@ -3078,8 +3080,8 @@ func Test_Ctx_SendFile_RestoreOriginalURL(t *testing.T) {
|
|||
// second request required to confirm with zero allocation
|
||||
_, err2 := app.Test(httptest.NewRequest(MethodGet, "/?test=true", nil))
|
||||
|
||||
require.Nil(t, err1)
|
||||
require.Nil(t, err2)
|
||||
require.NoError(t, err1)
|
||||
require.NoError(t, err2)
|
||||
}
|
||||
|
||||
// go test -run Test_Ctx_JSON
|
||||
|
@ -3088,7 +3090,7 @@ func Test_Ctx_JSON(t *testing.T) {
|
|||
app := New()
|
||||
c := app.NewCtx(&fasthttp.RequestCtx{})
|
||||
|
||||
require.True(t, c.JSON(complex(1, 1)) != nil)
|
||||
require.Error(t, c.JSON(complex(1, 1)))
|
||||
|
||||
// Test without ctype
|
||||
err := c.JSON(Map{ // map has no order
|
||||
|
@ -3192,7 +3194,7 @@ func Test_Ctx_JSONP(t *testing.T) {
|
|||
app := New()
|
||||
c := app.NewCtx(&fasthttp.RequestCtx{})
|
||||
|
||||
require.True(t, c.JSONP(complex(1, 1)) != nil)
|
||||
require.Error(t, c.JSONP(complex(1, 1)))
|
||||
|
||||
err := c.JSONP(Map{
|
||||
"Name": "Grame",
|
||||
|
@ -3260,7 +3262,7 @@ func Test_Ctx_XML(t *testing.T) {
|
|||
app := New()
|
||||
c := app.NewCtx(&fasthttp.RequestCtx{}).(*DefaultCtx) //nolint:errcheck, forcetypeassert // not needed
|
||||
|
||||
require.True(t, c.JSON(complex(1, 1)) != nil)
|
||||
require.Error(t, c.JSON(complex(1, 1)))
|
||||
|
||||
type xmlResult struct {
|
||||
XMLName xml.Name `xml:"Users"`
|
||||
|
@ -3424,10 +3426,10 @@ func Test_Ctx_Render(t *testing.T) {
|
|||
require.Equal(t, "<h1>Hello, World!</h1>", string(c.Response().Body()))
|
||||
|
||||
err = c.Render("./.github/testdata/template-non-exists.html", nil)
|
||||
require.False(t, err == nil)
|
||||
require.Error(t, err)
|
||||
|
||||
err = c.Render("./.github/testdata/template-invalid.html", nil)
|
||||
require.False(t, err == nil)
|
||||
require.Error(t, err)
|
||||
}
|
||||
|
||||
func Test_Ctx_RenderWithoutLocals(t *testing.T) {
|
||||
|
@ -3732,7 +3734,7 @@ func (t *testTemplateEngine) Load() error {
|
|||
func Test_Ctx_Render_Engine(t *testing.T) {
|
||||
t.Parallel()
|
||||
engine := &testTemplateEngine{}
|
||||
require.Equal(t, nil, engine.Load())
|
||||
require.NoError(t, engine.Load())
|
||||
app := New()
|
||||
app.config.Views = engine
|
||||
c := app.NewCtx(&fasthttp.RequestCtx{})
|
||||
|
@ -3748,7 +3750,7 @@ func Test_Ctx_Render_Engine(t *testing.T) {
|
|||
func Test_Ctx_Render_Engine_With_View_Layout(t *testing.T) {
|
||||
t.Parallel()
|
||||
engine := &testTemplateEngine{}
|
||||
require.Equal(t, nil, engine.Load())
|
||||
require.NoError(t, engine.Load())
|
||||
app := New(Config{ViewsLayout: "main.tmpl"})
|
||||
app.config.Views = engine
|
||||
c := app.NewCtx(&fasthttp.RequestCtx{})
|
||||
|
@ -3796,7 +3798,7 @@ func Benchmark_Ctx_Get_Location_From_Route(b *testing.B) {
|
|||
}
|
||||
|
||||
require.Equal(b, "/user/fiber", location)
|
||||
require.Equal(b, nil, err)
|
||||
require.NoError(b, err)
|
||||
}
|
||||
|
||||
// go test -run Test_Ctx_Get_Location_From_Route_name
|
||||
|
@ -3892,7 +3894,7 @@ func Test_Ctx_Render_Engine_Error(t *testing.T) {
|
|||
c := app.NewCtx(&fasthttp.RequestCtx{})
|
||||
|
||||
err := c.Render("index.tmpl", nil)
|
||||
require.False(t, err == nil)
|
||||
require.Error(t, err)
|
||||
}
|
||||
|
||||
// go test -run Test_Ctx_Render_Go_Template
|
||||
|
@ -4014,11 +4016,11 @@ func Test_Ctx_Set_Splitter(t *testing.T) {
|
|||
|
||||
c.Set("Location", "foo\r\nSet-Cookie:%20SESSIONID=MaliciousValue\r\n")
|
||||
h := string(c.Response().Header.Peek("Location"))
|
||||
require.False(t, strings.Contains(h, "\r\n"), h)
|
||||
require.NotContains(t, h, "\r\n")
|
||||
|
||||
c.Set("Location", "foo\nSet-Cookie:%20SESSIONID=MaliciousValue\n")
|
||||
h = string(c.Response().Header.Peek("Location"))
|
||||
require.False(t, strings.Contains(h, "\n"), h)
|
||||
require.NotContains(t, h, "\n")
|
||||
}
|
||||
|
||||
// go test -v -run=^$ -bench=Benchmark_Ctx_Set -benchmem -count=4
|
||||
|
@ -4143,7 +4145,7 @@ func Benchmark_Ctx_Write(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
_, err = c.Write(byt)
|
||||
}
|
||||
require.Equal(b, nil, err)
|
||||
require.NoError(b, err)
|
||||
}
|
||||
|
||||
// go test -run Test_Ctx_Writef
|
||||
|
@ -4171,7 +4173,7 @@ func Benchmark_Ctx_Writef(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
_, err = c.Writef("Hello, %s", world)
|
||||
}
|
||||
require.Equal(b, nil, err)
|
||||
require.NoError(b, err)
|
||||
}
|
||||
|
||||
// go test -run Test_Ctx_WriteString
|
||||
|
@ -4313,12 +4315,12 @@ func Test_Ctx_BodyStreamWriter(t *testing.T) {
|
|||
fmt.Fprintf(w, "body writer line 2\n")
|
||||
})
|
||||
|
||||
require.Equal(t, true, ctx.IsBodyStream())
|
||||
require.True(t, ctx.IsBodyStream())
|
||||
|
||||
s := ctx.Response.String()
|
||||
br := bufio.NewReader(bytes.NewBufferString(s))
|
||||
var resp fasthttp.Response
|
||||
require.Equal(t, nil, resp.Read(br))
|
||||
require.NoError(t, resp.Read(br))
|
||||
|
||||
body := string(resp.Body())
|
||||
expectedBody := "body writer line 1\nbody writer line 2\n"
|
||||
|
@ -4344,7 +4346,7 @@ func Benchmark_Ctx_BodyStreamWriter(b *testing.B) {
|
|||
}
|
||||
})
|
||||
}
|
||||
require.Equal(b, nil, err)
|
||||
require.NoError(b, err)
|
||||
}
|
||||
|
||||
func Test_Ctx_String(t *testing.T) {
|
||||
|
@ -4374,7 +4376,7 @@ func TestCtx_ParamsInt(t *testing.T) {
|
|||
require.Equal(t, 1111, num)
|
||||
|
||||
// Check no errors are returned, because we want NO errors in this one
|
||||
require.Equal(t, nil, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
return nil
|
||||
})
|
||||
|
@ -4390,7 +4392,7 @@ func TestCtx_ParamsInt(t *testing.T) {
|
|||
require.Equal(t, 0, num)
|
||||
|
||||
// Check an error is returned, because we want NO errors in this one
|
||||
require.Equal(t, true, err != nil)
|
||||
require.Error(t, err)
|
||||
|
||||
return nil
|
||||
})
|
||||
|
@ -4406,7 +4408,7 @@ func TestCtx_ParamsInt(t *testing.T) {
|
|||
require.Equal(t, 2222, num)
|
||||
|
||||
// Check no errors are returned, because we want NO errors in this one
|
||||
require.Equal(t, nil, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
return nil
|
||||
})
|
||||
|
@ -4422,7 +4424,7 @@ func TestCtx_ParamsInt(t *testing.T) {
|
|||
require.Equal(t, 1111, num)
|
||||
|
||||
// Check an error is returned, because we want NO errors in this one
|
||||
require.Equal(t, nil, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
return nil
|
||||
})
|
||||
|
@ -4506,7 +4508,7 @@ func Test_Ctx_IsFromLocal_RemoteAddr(t *testing.T) {
|
|||
c := app.NewCtx(fastCtx)
|
||||
|
||||
require.Equal(t, "127.0.0.1", c.IP())
|
||||
require.Equal(t, true, c.IsFromLocal())
|
||||
require.True(t, c.IsFromLocal())
|
||||
}
|
||||
// Test for the case fasthttp remoteAddr is set to "::1".
|
||||
{
|
||||
|
@ -4515,7 +4517,7 @@ func Test_Ctx_IsFromLocal_RemoteAddr(t *testing.T) {
|
|||
fastCtx.SetRemoteAddr(localIPv6)
|
||||
c := app.NewCtx(fastCtx)
|
||||
require.Equal(t, "::1", c.IP())
|
||||
require.Equal(t, true, c.IsFromLocal())
|
||||
require.True(t, c.IsFromLocal())
|
||||
}
|
||||
// Test for the case fasthttp remoteAddr is set to "0:0:0:0:0:0:0:1".
|
||||
{
|
||||
|
@ -4526,7 +4528,7 @@ func Test_Ctx_IsFromLocal_RemoteAddr(t *testing.T) {
|
|||
// fasthttp should return "::1" for "0:0:0:0:0:0:0:1".
|
||||
// otherwise IsFromLocal() will break.
|
||||
require.Equal(t, "::1", c.IP())
|
||||
require.Equal(t, true, c.IsFromLocal())
|
||||
require.True(t, c.IsFromLocal())
|
||||
}
|
||||
// Test for the case fasthttp remoteAddr is set to "0.0.0.0".
|
||||
{
|
||||
|
@ -4535,7 +4537,7 @@ func Test_Ctx_IsFromLocal_RemoteAddr(t *testing.T) {
|
|||
fastCtx.SetRemoteAddr(zeroIPv4)
|
||||
c := app.NewCtx(fastCtx)
|
||||
require.Equal(t, "0.0.0.0", c.IP())
|
||||
require.Equal(t, false, c.IsFromLocal())
|
||||
require.False(t, c.IsFromLocal())
|
||||
}
|
||||
// Test for the case fasthttp remoteAddr is set to "93.46.8.90".
|
||||
{
|
||||
|
@ -4544,7 +4546,7 @@ func Test_Ctx_IsFromLocal_RemoteAddr(t *testing.T) {
|
|||
fastCtx.SetRemoteAddr(someIPv4)
|
||||
c := app.NewCtx(fastCtx)
|
||||
require.Equal(t, "93.46.8.90", c.IP())
|
||||
require.Equal(t, false, c.IsFromLocal())
|
||||
require.False(t, c.IsFromLocal())
|
||||
}
|
||||
// Test for the case fasthttp remoteAddr is set to "2001:0db8:85a3:0000:0000:8a2e:0370:7334".
|
||||
{
|
||||
|
@ -4553,7 +4555,7 @@ func Test_Ctx_IsFromLocal_RemoteAddr(t *testing.T) {
|
|||
fastCtx.SetRemoteAddr(someIPv6)
|
||||
c := app.NewCtx(fastCtx)
|
||||
require.Equal(t, "2001:db8:85a3::8a2e:370:7334", c.IP())
|
||||
require.Equal(t, false, c.IsFromLocal())
|
||||
require.False(t, c.IsFromLocal())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -240,7 +240,7 @@ func Test_Utils_ForEachParameter(t *testing.T) {
|
|||
for _, tc := range testCases {
|
||||
n := 0
|
||||
forEachParameter(tc.paramStr, func(p, v string) bool {
|
||||
require.Equal(t, true, n < len(tc.expectedParams), "Received more parameters than expected: "+p+"="+v)
|
||||
require.Less(t, n, len(tc.expectedParams), "Received more parameters than expected: "+p+"="+v)
|
||||
require.Equal(t, tc.expectedParams[n][0], p, tc.description)
|
||||
require.Equal(t, tc.expectedParams[n][1], v, tc.description)
|
||||
n++
|
||||
|
@ -248,7 +248,7 @@ func Test_Utils_ForEachParameter(t *testing.T) {
|
|||
// Stop parsing at the first parameter called "end"
|
||||
return p != "end"
|
||||
})
|
||||
require.Equal(t, len(tc.expectedParams), n, tc.description+": number of parameters differs")
|
||||
require.Len(t, tc.expectedParams, n, tc.description+": number of parameters differs")
|
||||
}
|
||||
// Check that we exited on the second parameter (bar)
|
||||
}
|
||||
|
@ -323,7 +323,7 @@ func Benchmark_Utils_ParamsMatch(b *testing.B) {
|
|||
for n := 0; n < b.N; n++ {
|
||||
match = paramsMatch(`; appLe=orange; param="foo"`, `;param=foo; apple=orange`)
|
||||
}
|
||||
require.Equal(b, true, match)
|
||||
require.True(b, match)
|
||||
}
|
||||
|
||||
func Test_Utils_AcceptsOfferType(t *testing.T) {
|
||||
|
@ -451,7 +451,7 @@ func Test_Utils_SortAcceptedTypes(t *testing.T) {
|
|||
{spec: "application/json", quality: 0.999, specificity: 3, params: ";a=1", order: 11},
|
||||
}
|
||||
sortAcceptedTypes(&acceptedTypes)
|
||||
require.Equal(t, acceptedTypes, []acceptedType{
|
||||
require.Equal(t, []acceptedType{
|
||||
{spec: "text/html", quality: 1, specificity: 3, order: 0},
|
||||
{spec: "application/xml", quality: 1, specificity: 3, order: 4},
|
||||
{spec: "application/pdf", quality: 1, specificity: 3, order: 5},
|
||||
|
@ -464,7 +464,7 @@ func Test_Utils_SortAcceptedTypes(t *testing.T) {
|
|||
{spec: "application/json", quality: 0.999, specificity: 3, order: 3},
|
||||
{spec: "text/*", quality: 0.5, specificity: 2, order: 1},
|
||||
{spec: "*/*", quality: 0.1, specificity: 1, order: 2},
|
||||
})
|
||||
}, acceptedTypes)
|
||||
}
|
||||
|
||||
// go test -v -run=^$ -bench=Benchmark_Utils_SortAcceptedTypes_Sorted -benchmem -count=4
|
||||
|
@ -498,7 +498,7 @@ func Benchmark_Utils_SortAcceptedTypes_Unsorted(b *testing.B) {
|
|||
acceptedTypes[10] = acceptedType{spec: "text/plain", quality: 1, specificity: 3, order: 10}
|
||||
sortAcceptedTypes(&acceptedTypes)
|
||||
}
|
||||
require.Equal(b, acceptedTypes, []acceptedType{
|
||||
require.Equal(b, []acceptedType{
|
||||
{spec: "text/html", quality: 1, specificity: 3, order: 0},
|
||||
{spec: "application/xml", quality: 1, specificity: 3, order: 4},
|
||||
{spec: "application/pdf", quality: 1, specificity: 3, order: 5},
|
||||
|
@ -510,7 +510,7 @@ func Benchmark_Utils_SortAcceptedTypes_Unsorted(b *testing.B) {
|
|||
{spec: "application/json", quality: 0.999, specificity: 3, order: 3},
|
||||
{spec: "text/*", quality: 0.5, specificity: 2, order: 1},
|
||||
{spec: "*/*", quality: 0.1, specificity: 1, order: 2},
|
||||
})
|
||||
}, acceptedTypes)
|
||||
}
|
||||
|
||||
func Test_Utils_UniqueRouteStack(t *testing.T) {
|
||||
|
@ -609,9 +609,9 @@ func Test_Utils_Parse_Address(t *testing.T) {
|
|||
func Test_Utils_TestConn_Deadline(t *testing.T) {
|
||||
t.Parallel()
|
||||
conn := &testConn{}
|
||||
require.Nil(t, conn.SetDeadline(time.Time{}))
|
||||
require.Nil(t, conn.SetReadDeadline(time.Time{}))
|
||||
require.Nil(t, conn.SetWriteDeadline(time.Time{}))
|
||||
require.NoError(t, conn.SetDeadline(time.Time{}))
|
||||
require.NoError(t, conn.SetReadDeadline(time.Time{}))
|
||||
require.NoError(t, conn.SetWriteDeadline(time.Time{}))
|
||||
}
|
||||
|
||||
func Test_Utils_IsNoCache(t *testing.T) {
|
||||
|
|
|
@ -63,7 +63,7 @@ func Test_Hook_OnName(t *testing.T) {
|
|||
|
||||
app.Hooks().OnName(func(r Route) error {
|
||||
_, err := buf.WriteString(r.Name)
|
||||
require.NoError(t, nil, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
return nil
|
||||
})
|
||||
|
@ -104,7 +104,7 @@ func Test_Hook_OnGroup(t *testing.T) {
|
|||
|
||||
app.Hooks().OnGroup(func(g Group) error {
|
||||
_, err := buf.WriteString(g.Prefix)
|
||||
require.NoError(t, nil, err)
|
||||
require.NoError(t, err)
|
||||
return nil
|
||||
})
|
||||
|
||||
|
@ -143,7 +143,7 @@ func Test_Hook_OnGroupName(t *testing.T) {
|
|||
|
||||
app.Hooks().OnGroupName(func(g Group) error {
|
||||
_, err := buf.WriteString(g.name)
|
||||
require.NoError(t, nil, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
return nil
|
||||
})
|
||||
|
@ -189,12 +189,12 @@ func Test_Hook_OnShutdown(t *testing.T) {
|
|||
|
||||
app.Hooks().OnShutdown(func() error {
|
||||
_, err := buf.WriteString("shutdowning")
|
||||
require.NoError(t, nil, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
return nil
|
||||
})
|
||||
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
require.Equal(t, "shutdowning", buf.String())
|
||||
}
|
||||
|
||||
|
@ -215,9 +215,9 @@ func Test_Hook_OnListen(t *testing.T) {
|
|||
|
||||
go func() {
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
require.Equal(t, nil, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
require.Equal(t, nil, app.Listen(":9000"))
|
||||
require.NoError(t, app.Listen(":9000"))
|
||||
|
||||
require.Equal(t, "ready", buf.String())
|
||||
}
|
||||
|
@ -231,17 +231,17 @@ func Test_Hook_OnListenPrefork(t *testing.T) {
|
|||
|
||||
app.Hooks().OnListen(func(listenData ListenData) error {
|
||||
_, err := buf.WriteString("ready")
|
||||
require.NoError(t, nil, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
return nil
|
||||
})
|
||||
|
||||
go func() {
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
require.Nil(t, app.Listen(":9000", ListenConfig{DisableStartupMessage: true, EnablePrefork: true}))
|
||||
require.NoError(t, app.Listen(":9000", ListenConfig{DisableStartupMessage: true, EnablePrefork: true}))
|
||||
require.Equal(t, "ready", buf.String())
|
||||
}
|
||||
|
||||
|
@ -254,7 +254,7 @@ func Test_Hook_OnHook(t *testing.T) {
|
|||
|
||||
go func() {
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
app.Hooks().OnFork(func(pid int) error {
|
||||
|
@ -262,7 +262,7 @@ func Test_Hook_OnHook(t *testing.T) {
|
|||
return nil
|
||||
})
|
||||
|
||||
require.Nil(t, app.prefork(":3000", nil, ListenConfig{DisableStartupMessage: true, EnablePrefork: true}))
|
||||
require.NoError(t, app.prefork(":3000", nil, ListenConfig{DisableStartupMessage: true, EnablePrefork: true}))
|
||||
}
|
||||
|
||||
func Test_Hook_OnMount(t *testing.T) {
|
||||
|
@ -274,7 +274,7 @@ func Test_Hook_OnMount(t *testing.T) {
|
|||
subApp.Get("/test", testSimpleHandler)
|
||||
|
||||
subApp.Hooks().OnMount(func(parent *App) error {
|
||||
require.Equal(t, parent.mountFields.mountPath, "")
|
||||
require.Empty(t, parent.mountFields.mountPath)
|
||||
|
||||
return nil
|
||||
})
|
||||
|
|
|
@ -69,7 +69,7 @@ func Test_Storage_Memory_Get_Expired(t *testing.T) {
|
|||
|
||||
result, err := testStore.Get(key)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, true, len(result) == 0)
|
||||
require.Empty(t, result)
|
||||
}
|
||||
|
||||
func Test_Storage_Memory_Get_NotExist(t *testing.T) {
|
||||
|
@ -77,7 +77,7 @@ func Test_Storage_Memory_Get_NotExist(t *testing.T) {
|
|||
|
||||
result, err := testStore.Get("notexist")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, true, len(result) == 0)
|
||||
require.Empty(t, result)
|
||||
}
|
||||
|
||||
func Test_Storage_Memory_Delete(t *testing.T) {
|
||||
|
@ -95,7 +95,7 @@ func Test_Storage_Memory_Delete(t *testing.T) {
|
|||
|
||||
result, err := testStore.Get(key)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, true, len(result) == 0)
|
||||
require.Empty(t, result)
|
||||
}
|
||||
|
||||
func Test_Storage_Memory_Reset(t *testing.T) {
|
||||
|
@ -113,11 +113,11 @@ func Test_Storage_Memory_Reset(t *testing.T) {
|
|||
|
||||
result, err := testStore.Get("john1")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, true, len(result) == 0)
|
||||
require.Empty(t, result)
|
||||
|
||||
result, err = testStore.Get("john2")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, true, len(result) == 0)
|
||||
require.Empty(t, result)
|
||||
}
|
||||
|
||||
func Test_Storage_Memory_Close(t *testing.T) {
|
||||
|
@ -127,7 +127,7 @@ func Test_Storage_Memory_Close(t *testing.T) {
|
|||
|
||||
func Test_Storage_Memory_Conn(t *testing.T) {
|
||||
t.Parallel()
|
||||
require.True(t, testStore.Conn() != nil)
|
||||
require.NotNil(t, testStore.Conn())
|
||||
}
|
||||
|
||||
// go test -v -run=^$ -bench=Benchmark_Storage_Memory -benchmem -count=4
|
||||
|
|
127
listen_test.go
127
listen_test.go
|
@ -24,14 +24,14 @@ import (
|
|||
func Test_Listen(t *testing.T) {
|
||||
app := New()
|
||||
|
||||
require.False(t, app.Listen(":99999") == nil)
|
||||
require.Error(t, app.Listen(":99999"))
|
||||
|
||||
go func() {
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
require.Nil(t, app.Listen(":4003", ListenConfig{DisableStartupMessage: true}))
|
||||
require.NoError(t, app.Listen(":4003", ListenConfig{DisableStartupMessage: true}))
|
||||
}
|
||||
|
||||
// go test -run Test_Listen_Graceful_Shutdown
|
||||
|
@ -83,7 +83,7 @@ func Test_Listen_Graceful_Shutdown(t *testing.T) {
|
|||
|
||||
require.Equal(t, tc.ExpectedStatusCode, code)
|
||||
require.Equal(t, tc.ExpectedBody, body)
|
||||
require.Equal(t, tc.ExceptedErrsLen, len(errs))
|
||||
require.Len(t, errs, tc.ExceptedErrsLen)
|
||||
}
|
||||
|
||||
mu.Lock()
|
||||
|
@ -97,7 +97,7 @@ func Test_Listen_Prefork(t *testing.T) {
|
|||
|
||||
app := New()
|
||||
|
||||
require.Nil(t, app.Listen(":99999", ListenConfig{DisableStartupMessage: true, EnablePrefork: true}))
|
||||
require.NoError(t, app.Listen(":99999", ListenConfig{DisableStartupMessage: true, EnablePrefork: true}))
|
||||
}
|
||||
|
||||
// go test -run Test_Listen_TLS
|
||||
|
@ -105,17 +105,17 @@ func Test_Listen_TLS(t *testing.T) {
|
|||
app := New()
|
||||
|
||||
// invalid port
|
||||
require.False(t, app.Listen(":99999", ListenConfig{
|
||||
require.Error(t, app.Listen(":99999", ListenConfig{
|
||||
CertFile: "./.github/testdata/ssl.pem",
|
||||
CertKeyFile: "./.github/testdata/ssl.key",
|
||||
}) == nil)
|
||||
}))
|
||||
|
||||
go func() {
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
require.Nil(t, app.Listen(":0", ListenConfig{
|
||||
require.NoError(t, app.Listen(":0", ListenConfig{
|
||||
CertFile: "./.github/testdata/ssl.pem",
|
||||
CertKeyFile: "./.github/testdata/ssl.key",
|
||||
}))
|
||||
|
@ -128,19 +128,19 @@ func Test_Listen_TLS_Prefork(t *testing.T) {
|
|||
app := New()
|
||||
|
||||
// invalid key file content
|
||||
require.False(t, app.Listen(":0", ListenConfig{
|
||||
require.Error(t, app.Listen(":0", ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
EnablePrefork: true,
|
||||
CertFile: "./.github/testdata/ssl.pem",
|
||||
CertKeyFile: "./.github/testdata/template.tmpl",
|
||||
}) == nil)
|
||||
}))
|
||||
|
||||
go func() {
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
require.Nil(t, app.Listen(":99999", ListenConfig{
|
||||
require.NoError(t, app.Listen(":99999", ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
EnablePrefork: true,
|
||||
CertFile: "./.github/testdata/ssl.pem",
|
||||
|
@ -153,18 +153,18 @@ func Test_Listen_MutualTLS(t *testing.T) {
|
|||
app := New()
|
||||
|
||||
// invalid port
|
||||
require.False(t, app.Listen(":99999", ListenConfig{
|
||||
require.Error(t, app.Listen(":99999", ListenConfig{
|
||||
CertFile: "./.github/testdata/ssl.pem",
|
||||
CertKeyFile: "./.github/testdata/ssl.key",
|
||||
CertClientFile: "./.github/testdata/ca-chain.cert.pem",
|
||||
}) == nil)
|
||||
}))
|
||||
|
||||
go func() {
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
require.Nil(t, app.Listen(":0", ListenConfig{
|
||||
require.NoError(t, app.Listen(":0", ListenConfig{
|
||||
CertFile: "./.github/testdata/ssl.pem",
|
||||
CertKeyFile: "./.github/testdata/ssl.key",
|
||||
CertClientFile: "./.github/testdata/ca-chain.cert.pem",
|
||||
|
@ -178,20 +178,20 @@ func Test_Listen_MutualTLS_Prefork(t *testing.T) {
|
|||
app := New()
|
||||
|
||||
// invalid key file content
|
||||
require.False(t, app.Listen(":0", ListenConfig{
|
||||
require.Error(t, app.Listen(":0", ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
EnablePrefork: true,
|
||||
CertFile: "./.github/testdata/ssl.pem",
|
||||
CertKeyFile: "./.github/testdata/template.html",
|
||||
CertClientFile: "./.github/testdata/ca-chain.cert.pem",
|
||||
}) == nil)
|
||||
}))
|
||||
|
||||
go func() {
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
require.Nil(t, app.Listen(":99999", ListenConfig{
|
||||
require.NoError(t, app.Listen(":99999", ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
EnablePrefork: true,
|
||||
CertFile: "./.github/testdata/ssl.pem",
|
||||
|
@ -206,11 +206,11 @@ func Test_Listener(t *testing.T) {
|
|||
|
||||
go func() {
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
ln := fasthttputil.NewInmemoryListener()
|
||||
require.Nil(t, app.Listener(ln))
|
||||
require.NoError(t, app.Listener(ln))
|
||||
}
|
||||
|
||||
func Test_App_Listener_TLS_Listener(t *testing.T) {
|
||||
|
@ -231,10 +231,10 @@ func Test_App_Listener_TLS_Listener(t *testing.T) {
|
|||
|
||||
go func() {
|
||||
time.Sleep(time.Millisecond * 500)
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
require.Nil(t, app.Listener(ln))
|
||||
require.NoError(t, app.Listener(ln))
|
||||
}
|
||||
|
||||
// go test -run Test_Listen_TLSConfigFunc
|
||||
|
@ -244,10 +244,10 @@ func Test_Listen_TLSConfigFunc(t *testing.T) {
|
|||
|
||||
go func() {
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
require.Nil(t, app.Listen(":0", ListenConfig{
|
||||
require.NoError(t, app.Listen(":0", ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
TLSConfigFunc: func(tlsConfig *tls.Config) {
|
||||
callTLSConfig = true
|
||||
|
@ -266,10 +266,10 @@ func Test_Listen_ListenerAddrFunc(t *testing.T) {
|
|||
|
||||
go func() {
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
require.Nil(t, app.Listen(":0", ListenConfig{
|
||||
require.NoError(t, app.Listen(":0", ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
ListenerAddrFunc: func(addr net.Addr) {
|
||||
network = addr.Network()
|
||||
|
@ -288,19 +288,20 @@ func Test_Listen_BeforeServeFunc(t *testing.T) {
|
|||
|
||||
go func() {
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
require.Equal(t, errors.New("test"), app.Listen(":0", ListenConfig{
|
||||
wantErr := errors.New("test")
|
||||
require.ErrorIs(t, app.Listen(":0", ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
BeforeServeFunc: func(fiber *App) error {
|
||||
handlers = fiber.HandlersCount()
|
||||
|
||||
return errors.New("test")
|
||||
return wantErr
|
||||
},
|
||||
}))
|
||||
}), wantErr)
|
||||
|
||||
require.Equal(t, uint32(0), handlers)
|
||||
require.Zero(t, handlers)
|
||||
}
|
||||
|
||||
// go test -run Test_Listen_ListenerNetwork
|
||||
|
@ -310,10 +311,10 @@ func Test_Listen_ListenerNetwork(t *testing.T) {
|
|||
|
||||
go func() {
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
require.Nil(t, app.Listen(":0", ListenConfig{
|
||||
require.NoError(t, app.Listen(":0", ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
ListenerNetwork: NetworkTCP6,
|
||||
ListenerAddrFunc: func(addr net.Addr) {
|
||||
|
@ -321,14 +322,14 @@ func Test_Listen_ListenerNetwork(t *testing.T) {
|
|||
},
|
||||
}))
|
||||
|
||||
require.True(t, strings.Contains(network, "[::]:"))
|
||||
require.Contains(t, network, "[::]:")
|
||||
|
||||
go func() {
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
require.Nil(t, app.Listen(":0", ListenConfig{
|
||||
require.NoError(t, app.Listen(":0", ListenConfig{
|
||||
DisableStartupMessage: true,
|
||||
ListenerNetwork: NetworkTCP4,
|
||||
ListenerAddrFunc: func(addr net.Addr) {
|
||||
|
@ -336,7 +337,7 @@ func Test_Listen_ListenerNetwork(t *testing.T) {
|
|||
},
|
||||
}))
|
||||
|
||||
require.True(t, strings.Contains(network, "0.0.0.0:"))
|
||||
require.Contains(t, network, "0.0.0.0:")
|
||||
}
|
||||
|
||||
// go test -run Test_Listen_Master_Process_Show_Startup_Message
|
||||
|
@ -350,11 +351,11 @@ func Test_Listen_Master_Process_Show_Startup_Message(t *testing.T) {
|
|||
startupMessage(":3000", true, strings.Repeat(",11111,22222,33333,44444,55555,60000", 10), cfg)
|
||||
})
|
||||
colors := Colors{}
|
||||
require.True(t, strings.Contains(startupMessage, "https://127.0.0.1:3000"))
|
||||
require.True(t, strings.Contains(startupMessage, "(bound on host 0.0.0.0 and port 3000)"))
|
||||
require.True(t, strings.Contains(startupMessage, "Child PIDs"))
|
||||
require.True(t, strings.Contains(startupMessage, "11111, 22222, 33333, 44444, 55555, 60000"))
|
||||
require.True(t, strings.Contains(startupMessage, fmt.Sprintf("Prefork: %sEnabled%s", colors.Blue, colors.Reset)))
|
||||
require.Contains(t, startupMessage, "https://127.0.0.1:3000")
|
||||
require.Contains(t, startupMessage, "(bound on host 0.0.0.0 and port 3000)")
|
||||
require.Contains(t, startupMessage, "Child PIDs")
|
||||
require.Contains(t, startupMessage, "11111, 22222, 33333, 44444, 55555, 60000")
|
||||
require.Contains(t, startupMessage, fmt.Sprintf("Prefork: %sEnabled%s", colors.Blue, colors.Reset))
|
||||
}
|
||||
|
||||
// go test -run Test_Listen_Master_Process_Show_Startup_MessageWithAppName
|
||||
|
@ -368,7 +369,7 @@ func Test_Listen_Master_Process_Show_Startup_MessageWithAppName(t *testing.T) {
|
|||
app.startupMessage(":3000", true, strings.Repeat(",11111,22222,33333,44444,55555,60000", 10), cfg)
|
||||
})
|
||||
require.Equal(t, "Test App v3.0.0", app.Config().AppName)
|
||||
require.True(t, strings.Contains(startupMessage, app.Config().AppName))
|
||||
require.Contains(t, startupMessage, app.Config().AppName)
|
||||
}
|
||||
|
||||
// go test -run Test_Listen_Master_Process_Show_Startup_MessageWithAppNameNonAscii
|
||||
|
@ -383,7 +384,7 @@ func Test_Listen_Master_Process_Show_Startup_MessageWithAppNameNonAscii(t *testi
|
|||
startupMessage := captureOutput(func() {
|
||||
app.startupMessage(":3000", false, "", cfg)
|
||||
})
|
||||
require.True(t, strings.Contains(startupMessage, "Serveur de vérification des données"))
|
||||
require.Contains(t, startupMessage, "Serveur de vérification des données")
|
||||
}
|
||||
|
||||
// go test -run Test_Listen_Master_Process_Show_Startup_MessageWithDisabledPreforkAndCustomEndpoint
|
||||
|
@ -398,10 +399,10 @@ func Test_Listen_Master_Process_Show_Startup_MessageWithDisabledPreforkAndCustom
|
|||
app.startupMessage("server.com:8081", true, strings.Repeat(",11111,22222,33333,44444,55555,60000", 5), cfg)
|
||||
})
|
||||
colors := Colors{}
|
||||
require.True(t, strings.Contains(startupMessage, fmt.Sprintf("%sINFO%s", colors.Green, colors.Reset)))
|
||||
require.True(t, strings.Contains(startupMessage, fmt.Sprintf("%s%s%s", colors.Blue, appName, colors.Reset)))
|
||||
require.True(t, strings.Contains(startupMessage, fmt.Sprintf("%s%s%s", colors.Blue, "https://server.com:8081", colors.Reset)))
|
||||
require.True(t, strings.Contains(startupMessage, fmt.Sprintf("Prefork: %sDisabled%s", colors.Red, colors.Reset)))
|
||||
require.Contains(t, startupMessage, fmt.Sprintf("%sINFO%s", colors.Green, colors.Reset))
|
||||
require.Contains(t, startupMessage, fmt.Sprintf("%s%s%s", colors.Blue, appName, colors.Reset))
|
||||
require.Contains(t, startupMessage, fmt.Sprintf("%s%s%s", colors.Blue, "https://server.com:8081", colors.Reset))
|
||||
require.Contains(t, startupMessage, fmt.Sprintf("Prefork: %sDisabled%s", colors.Red, colors.Reset))
|
||||
}
|
||||
|
||||
// go test -run Test_Listen_Print_Route
|
||||
|
@ -411,10 +412,10 @@ func Test_Listen_Print_Route(t *testing.T) {
|
|||
printRoutesMessage := captureOutput(func() {
|
||||
app.printRoutesMessage()
|
||||
})
|
||||
require.True(t, strings.Contains(printRoutesMessage, MethodGet))
|
||||
require.True(t, strings.Contains(printRoutesMessage, "/"))
|
||||
require.True(t, strings.Contains(printRoutesMessage, "emptyHandler"))
|
||||
require.True(t, strings.Contains(printRoutesMessage, "routeName"))
|
||||
require.Contains(t, printRoutesMessage, MethodGet)
|
||||
require.Contains(t, printRoutesMessage, "/")
|
||||
require.Contains(t, printRoutesMessage, "emptyHandler")
|
||||
require.Contains(t, printRoutesMessage, "routeName")
|
||||
}
|
||||
|
||||
// go test -run Test_Listen_Print_Route_With_Group
|
||||
|
@ -431,14 +432,14 @@ func Test_Listen_Print_Route_With_Group(t *testing.T) {
|
|||
app.printRoutesMessage()
|
||||
})
|
||||
|
||||
require.True(t, strings.Contains(printRoutesMessage, MethodGet))
|
||||
require.True(t, strings.Contains(printRoutesMessage, "/"))
|
||||
require.True(t, strings.Contains(printRoutesMessage, "emptyHandler"))
|
||||
require.True(t, strings.Contains(printRoutesMessage, "/v1/test"))
|
||||
require.True(t, strings.Contains(printRoutesMessage, "POST"))
|
||||
require.True(t, strings.Contains(printRoutesMessage, "/v1/test/fiber"))
|
||||
require.True(t, strings.Contains(printRoutesMessage, "PUT"))
|
||||
require.True(t, strings.Contains(printRoutesMessage, "/v1/test/fiber/*"))
|
||||
require.Contains(t, printRoutesMessage, MethodGet)
|
||||
require.Contains(t, printRoutesMessage, "/")
|
||||
require.Contains(t, printRoutesMessage, "emptyHandler")
|
||||
require.Contains(t, printRoutesMessage, "/v1/test")
|
||||
require.Contains(t, printRoutesMessage, "POST")
|
||||
require.Contains(t, printRoutesMessage, "/v1/test/fiber")
|
||||
require.Contains(t, printRoutesMessage, "PUT")
|
||||
require.Contains(t, printRoutesMessage, "/v1/test/fiber/*")
|
||||
}
|
||||
|
||||
func captureOutput(f func()) string {
|
||||
|
|
|
@ -26,7 +26,7 @@ func Test_App_Mount(t *testing.T) {
|
|||
app := New()
|
||||
app.Use("/john", micro)
|
||||
resp, err := app.Test(httptest.NewRequest(MethodGet, "/john/doe", http.NoBody))
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.Equal(t, uint32(1), app.handlersCount)
|
||||
}
|
||||
|
@ -76,15 +76,15 @@ func Test_App_Mount_Nested(t *testing.T) {
|
|||
})
|
||||
|
||||
resp, err := app.Test(httptest.NewRequest(MethodGet, "/one/doe", http.NoBody))
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
|
||||
resp, err = app.Test(httptest.NewRequest(MethodGet, "/one/two/nested", http.NoBody))
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
|
||||
resp, err = app.Test(httptest.NewRequest(MethodGet, "/one/two/three/test", http.NoBody))
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
|
||||
require.Equal(t, uint32(3), app.handlersCount)
|
||||
|
@ -101,7 +101,7 @@ func Test_App_Mount_Express_Behavior(t *testing.T) {
|
|||
}
|
||||
testEndpoint := func(app *App, route, expectedBody string, expectedStatusCode int) {
|
||||
resp, err := app.Test(httptest.NewRequest(MethodGet, route, http.NoBody))
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, expectedStatusCode, resp.StatusCode, "Status code")
|
||||
|
@ -146,7 +146,7 @@ func Test_App_Mount_RoutePositions(t *testing.T) {
|
|||
t.Parallel()
|
||||
testEndpoint := func(app *App, route, expectedBody string) {
|
||||
resp, err := app.Test(httptest.NewRequest(MethodGet, route, http.NoBody))
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, StatusOK, resp.StatusCode, "Status code")
|
||||
|
@ -189,26 +189,26 @@ func Test_App_Mount_RoutePositions(t *testing.T) {
|
|||
testEndpoint(app, "/subApp2/world", "hello")
|
||||
|
||||
routeStackGET := app.Stack()[0]
|
||||
require.Equal(t, true, routeStackGET[0].use)
|
||||
require.True(t, routeStackGET[0].use)
|
||||
require.Equal(t, "/", routeStackGET[0].path)
|
||||
|
||||
require.Equal(t, true, routeStackGET[1].use)
|
||||
require.True(t, routeStackGET[1].use)
|
||||
require.Equal(t, "/", routeStackGET[1].path)
|
||||
require.Equal(t, true, routeStackGET[0].pos < routeStackGET[1].pos, "wrong position of route 0")
|
||||
require.Less(t, routeStackGET[0].pos, routeStackGET[1].pos, "wrong position of route 0")
|
||||
|
||||
require.Equal(t, false, routeStackGET[2].use)
|
||||
require.False(t, routeStackGET[2].use)
|
||||
require.Equal(t, "/bar", routeStackGET[2].path)
|
||||
require.Equal(t, true, routeStackGET[1].pos < routeStackGET[2].pos, "wrong position of route 1")
|
||||
require.Less(t, routeStackGET[1].pos, routeStackGET[2].pos, "wrong position of route 1")
|
||||
|
||||
require.Equal(t, true, routeStackGET[3].use)
|
||||
require.True(t, routeStackGET[3].use)
|
||||
require.Equal(t, "/", routeStackGET[3].path)
|
||||
require.Equal(t, true, routeStackGET[2].pos < routeStackGET[3].pos, "wrong position of route 2")
|
||||
require.Less(t, routeStackGET[2].pos, routeStackGET[3].pos, "wrong position of route 2")
|
||||
|
||||
require.Equal(t, false, routeStackGET[4].use)
|
||||
require.False(t, routeStackGET[4].use)
|
||||
require.Equal(t, "/subapp2/world", routeStackGET[4].path)
|
||||
require.Equal(t, true, routeStackGET[3].pos < routeStackGET[4].pos, "wrong position of route 3")
|
||||
require.Less(t, routeStackGET[3].pos, routeStackGET[4].pos, "wrong position of route 3")
|
||||
|
||||
require.Equal(t, 5, len(routeStackGET))
|
||||
require.Len(t, routeStackGET, 5)
|
||||
}
|
||||
|
||||
// go test -run Test_App_MountPath
|
||||
|
@ -282,7 +282,7 @@ func Test_App_Group_Mount(t *testing.T) {
|
|||
v1.Use("/john", micro)
|
||||
|
||||
resp, err := app.Test(httptest.NewRequest(MethodGet, "/v1/john/doe", http.NoBody))
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
require.Equal(t, uint32(1), app.handlersCount)
|
||||
}
|
||||
|
@ -383,19 +383,19 @@ func Test_App_UseMountedErrorHandlerForBestPrefixMatch(t *testing.T) {
|
|||
app.Use("/api", fiber)
|
||||
|
||||
resp, err := app.Test(httptest.NewRequest(MethodGet, "/api/sub", http.NoBody))
|
||||
require.Equal(t, nil, err, "/api/sub req")
|
||||
require.NoError(t, err, "/api/sub req")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.Equal(t, nil, err, "iotuil.ReadAll()")
|
||||
require.NoError(t, err, "iotuil.ReadAll()")
|
||||
require.Equal(t, "hi, i'm a custom sub fiber error", string(b), "Response body")
|
||||
|
||||
resp2, err := app.Test(httptest.NewRequest(MethodGet, "/api/sub/third", http.NoBody))
|
||||
require.Equal(t, nil, err, "/api/sub/third req")
|
||||
require.NoError(t, err, "/api/sub/third req")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
|
||||
b, err = io.ReadAll(resp2.Body)
|
||||
require.Equal(t, nil, err, "iotuil.ReadAll()")
|
||||
require.NoError(t, err, "iotuil.ReadAll()")
|
||||
require.Equal(t, "hi, i'm a custom sub sub fiber error", string(b), "Third fiber Response body")
|
||||
}
|
||||
|
||||
|
@ -405,15 +405,15 @@ func Test_Mount_Route_Names(t *testing.T) {
|
|||
subApp1 := New()
|
||||
subApp1.Get("/users", func(c Ctx) error {
|
||||
url, err := c.GetRouteURL("add-user", Map{})
|
||||
require.Equal(t, err, nil)
|
||||
require.Equal(t, url, "/app1/users", "handler: app1.add-user") // the prefix is /app1 because of the mount
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "/app1/users", url, "handler: app1.add-user") // the prefix is /app1 because of the mount
|
||||
// if subApp1 is not mounted, expected url just /users
|
||||
return nil
|
||||
}).Name("get-users")
|
||||
subApp1.Post("/users", func(c Ctx) error {
|
||||
route := c.App().GetRoute("get-users")
|
||||
require.Equal(t, route.Method, MethodGet, "handler: app1.get-users method")
|
||||
require.Equal(t, route.Path, "/app1/users", "handler: app1.get-users path")
|
||||
require.Equal(t, MethodGet, route.Method, "handler: app1.get-users method")
|
||||
require.Equal(t, "/app1/users", route.Path, "handler: app1.get-users path")
|
||||
return nil
|
||||
}).Name("add-user")
|
||||
|
||||
|
@ -432,30 +432,30 @@ func Test_Mount_Route_Names(t *testing.T) {
|
|||
|
||||
// take route directly from sub-app
|
||||
route := subApp1.GetRoute("get-users")
|
||||
require.Equal(t, route.Method, MethodGet)
|
||||
require.Equal(t, route.Path, "/users")
|
||||
require.Equal(t, MethodGet, route.Method)
|
||||
require.Equal(t, "/users", route.Path)
|
||||
|
||||
route = subApp1.GetRoute("add-user")
|
||||
require.Equal(t, route.Method, MethodPost)
|
||||
require.Equal(t, route.Path, "/users")
|
||||
require.Equal(t, MethodPost, route.Method)
|
||||
require.Equal(t, "/users", route.Path)
|
||||
|
||||
// take route directly from sub-app with group
|
||||
route = subApp2.GetRoute("users.get")
|
||||
require.Equal(t, route.Method, MethodGet)
|
||||
require.Equal(t, route.Path, "/users")
|
||||
require.Equal(t, MethodGet, route.Method)
|
||||
require.Equal(t, "/users", route.Path)
|
||||
|
||||
route = subApp2.GetRoute("users.add")
|
||||
require.Equal(t, route.Method, MethodPost)
|
||||
require.Equal(t, route.Path, "/users")
|
||||
require.Equal(t, MethodPost, route.Method)
|
||||
require.Equal(t, "/users", route.Path)
|
||||
|
||||
// take route from root app (using names of sub-apps)
|
||||
route = rootApp.GetRoute("add-user")
|
||||
require.Equal(t, route.Method, MethodPost)
|
||||
require.Equal(t, route.Path, "/app1/users")
|
||||
require.Equal(t, MethodPost, route.Method)
|
||||
require.Equal(t, "/app1/users", route.Path)
|
||||
|
||||
route = rootApp.GetRoute("users.add")
|
||||
require.Equal(t, route.Method, MethodPost)
|
||||
require.Equal(t, route.Path, "/app2/users")
|
||||
require.Equal(t, MethodPost, route.Method)
|
||||
require.Equal(t, "/app2/users", route.Path)
|
||||
|
||||
// GetRouteURL inside handler
|
||||
req := httptest.NewRequest(MethodGet, "/app1/users", nil)
|
||||
|
@ -495,7 +495,7 @@ func Test_Ctx_Render_Mount(t *testing.T) {
|
|||
|
||||
resp, err := app.Test(httptest.NewRequest(MethodGet, "/hello/a", http.NoBody))
|
||||
require.Equal(t, StatusOK, resp.StatusCode, "Status code")
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
@ -551,7 +551,7 @@ func Test_Ctx_Render_Mount_ParentOrSubHasViews(t *testing.T) {
|
|||
|
||||
resp, err := app.Test(httptest.NewRequest(MethodGet, "/hello/world/a", http.NoBody))
|
||||
require.Equal(t, StatusOK, resp.StatusCode, "Status code")
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
@ -559,7 +559,7 @@ func Test_Ctx_Render_Mount_ParentOrSubHasViews(t *testing.T) {
|
|||
|
||||
resp, err = app.Test(httptest.NewRequest(MethodGet, "/test", http.NoBody))
|
||||
require.Equal(t, StatusOK, resp.StatusCode, "Status code")
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
|
||||
body, err = io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
@ -567,7 +567,7 @@ func Test_Ctx_Render_Mount_ParentOrSubHasViews(t *testing.T) {
|
|||
|
||||
resp, err = app.Test(httptest.NewRequest(MethodGet, "/hello/bruh/moment", http.NoBody))
|
||||
require.Equal(t, StatusOK, resp.StatusCode, "Status code")
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
|
||||
body, err = io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
@ -596,7 +596,7 @@ func Test_Ctx_Render_MountGroup(t *testing.T) {
|
|||
v1.Use("/john", micro)
|
||||
|
||||
resp, err := app.Test(httptest.NewRequest(MethodGet, "/v1/john/doe", http.NoBody))
|
||||
require.Equal(t, nil, err, "app.Test(req)")
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.Equal(t, 200, resp.StatusCode, "Status code")
|
||||
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
|
|
|
@ -24,14 +24,14 @@ func Test_App_Prefork_Child_Process(t *testing.T) {
|
|||
app := New()
|
||||
|
||||
err := app.prefork("invalid", nil, listenConfigDefault())
|
||||
require.False(t, err == nil)
|
||||
require.Error(t, err)
|
||||
|
||||
go func() {
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
require.Nil(t, app.prefork("[::1]:", nil, ListenConfig{ListenerNetwork: NetworkTCP6}))
|
||||
require.NoError(t, app.prefork("[::1]:", nil, ListenConfig{ListenerNetwork: NetworkTCP6}))
|
||||
|
||||
// Create tls certificate
|
||||
cer, err := tls.LoadX509KeyPair("./.github/testdata/ssl.pem", "./.github/testdata/ssl.key")
|
||||
|
@ -43,10 +43,10 @@ func Test_App_Prefork_Child_Process(t *testing.T) {
|
|||
|
||||
go func() {
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
require.Nil(t, app.prefork("127.0.0.1:", config, listenConfigDefault()))
|
||||
require.NoError(t, app.prefork("127.0.0.1:", config, listenConfigDefault()))
|
||||
}
|
||||
|
||||
func Test_App_Prefork_Master_Process(t *testing.T) {
|
||||
|
@ -57,15 +57,15 @@ func Test_App_Prefork_Master_Process(t *testing.T) {
|
|||
|
||||
go func() {
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
require.Nil(t, app.Shutdown())
|
||||
require.NoError(t, app.Shutdown())
|
||||
}()
|
||||
|
||||
require.Nil(t, app.prefork(":3000", nil, listenConfigDefault()))
|
||||
require.NoError(t, app.prefork(":3000", nil, listenConfigDefault()))
|
||||
|
||||
dummyChildCmd.Store("invalid")
|
||||
|
||||
err := app.prefork("127.0.0.1:", nil, listenConfigDefault())
|
||||
require.False(t, err == nil)
|
||||
require.Error(t, err)
|
||||
|
||||
dummyChildCmd.Store("go")
|
||||
}
|
||||
|
@ -84,21 +84,21 @@ func Test_App_Prefork_Child_Process_Never_Show_Startup_Message(t *testing.T) {
|
|||
|
||||
New().startupProcess().startupMessage(":3000", false, "", listenConfigDefault())
|
||||
|
||||
require.Nil(t, w.Close())
|
||||
require.NoError(t, w.Close())
|
||||
|
||||
out, err := io.ReadAll(r)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 0, len(out))
|
||||
require.Empty(t, out)
|
||||
}
|
||||
|
||||
func setupIsChild(t *testing.T) {
|
||||
t.Helper()
|
||||
|
||||
require.Nil(t, os.Setenv(envPreforkChildKey, envPreforkChildVal))
|
||||
require.NoError(t, os.Setenv(envPreforkChildKey, envPreforkChildVal))
|
||||
}
|
||||
|
||||
func teardownIsChild(t *testing.T) {
|
||||
t.Helper()
|
||||
|
||||
require.Nil(t, os.Setenv(envPreforkChildKey, ""))
|
||||
require.NoError(t, os.Setenv(envPreforkChildKey, ""))
|
||||
}
|
||||
|
|
|
@ -325,7 +325,7 @@ func Test_Redirect_Request(t *testing.T) {
|
|||
|
||||
require.Equal(t, tc.ExpectedStatusCode, code)
|
||||
require.Equal(t, tc.ExpectedBody, body)
|
||||
require.Equal(t, tc.ExceptedErrsLen, len(errs))
|
||||
require.Len(t, errs, tc.ExceptedErrsLen)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@ import (
|
|||
"io"
|
||||
"net/http/httptest"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/gofiber/utils/v2"
|
||||
|
@ -353,7 +352,7 @@ func Test_Route_Static_Root(t *testing.T) {
|
|||
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.True(t, strings.Contains(app.getString(body), "color"))
|
||||
require.Contains(t, app.getString(body), "color")
|
||||
|
||||
app = New()
|
||||
app.Static("/", dir)
|
||||
|
@ -368,7 +367,7 @@ func Test_Route_Static_Root(t *testing.T) {
|
|||
|
||||
body, err = io.ReadAll(resp.Body)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.True(t, strings.Contains(app.getString(body), "color"))
|
||||
require.Contains(t, app.getString(body), "color")
|
||||
}
|
||||
|
||||
func Test_Route_Static_HasPrefix(t *testing.T) {
|
||||
|
@ -394,7 +393,7 @@ func Test_Route_Static_HasPrefix(t *testing.T) {
|
|||
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.True(t, strings.Contains(app.getString(body), "color"))
|
||||
require.Contains(t, app.getString(body), "color")
|
||||
|
||||
app = New()
|
||||
app.Static("/static/", dir, Static{
|
||||
|
@ -415,7 +414,7 @@ func Test_Route_Static_HasPrefix(t *testing.T) {
|
|||
|
||||
body, err = io.ReadAll(resp.Body)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.True(t, strings.Contains(app.getString(body), "color"))
|
||||
require.Contains(t, app.getString(body), "color")
|
||||
|
||||
app = New()
|
||||
app.Static("/static", dir)
|
||||
|
@ -434,7 +433,7 @@ func Test_Route_Static_HasPrefix(t *testing.T) {
|
|||
|
||||
body, err = io.ReadAll(resp.Body)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.True(t, strings.Contains(app.getString(body), "color"))
|
||||
require.Contains(t, app.getString(body), "color")
|
||||
|
||||
app = New()
|
||||
app.Static("/static/", dir)
|
||||
|
@ -453,7 +452,7 @@ func Test_Route_Static_HasPrefix(t *testing.T) {
|
|||
|
||||
body, err = io.ReadAll(resp.Body)
|
||||
require.NoError(t, err, "app.Test(req)")
|
||||
require.True(t, strings.Contains(app.getString(body), "color"))
|
||||
require.Contains(t, app.getString(body), "color")
|
||||
}
|
||||
|
||||
func Test_Router_NotFound(t *testing.T) {
|
||||
|
|
Loading…
Reference in New Issue