From baa0fce541688457e3df7cb110389d82ff2a28f6 Mon Sep 17 00:00:00 2001 From: Nicholas Jackson Date: Sun, 21 Jan 2024 11:37:49 -0800 Subject: [PATCH] chore: Fix remaining testifylint errors --- app_test.go | 158 +++++++++-------- bind_test.go | 236 ++++++++++++------------- client_test.go | 163 +++++++++-------- ctx_test.go | 138 ++++++++------- helpers_test.go | 20 +-- hooks_test.go | 26 +-- internal/storage/memory/memory_test.go | 12 +- listen_test.go | 127 ++++++------- mount_test.go | 84 ++++----- prefork_test.go | 24 +-- redirect_test.go | 2 +- router_test.go | 13 +- 12 files changed, 507 insertions(+), 496 deletions(-) diff --git a/app_test.go b/app_test.go index 7efe961725..e61d23a95d 100644 --- a/app_test.go +++ b/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), ""), "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) } diff --git a/bind_test.go b/bind_test.go index d1a63ce400..7080c31145 100644 --- a/bind_test.go +++ b/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 }", 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 }", 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 }", 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 }", 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) } diff --git a/client_test.go b/client_test.go index 81e80bc5fc..57ca0135c5 100644 --- a/client_test.go +++ b/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) } } diff --git a/ctx_test.go b/ctx_test.go index afc2973582..6030d7e42e 100644 --- a/ctx_test.go +++ b/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, "

Hello, World!

", 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()) } } diff --git a/helpers_test.go b/helpers_test.go index e7b24eb59c..f5b17ca343 100644 --- a/helpers_test.go +++ b/helpers_test.go @@ -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) { diff --git a/hooks_test.go b/hooks_test.go index ff53cc64bb..49d4d34766 100644 --- a/hooks_test.go +++ b/hooks_test.go @@ -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 }) diff --git a/internal/storage/memory/memory_test.go b/internal/storage/memory/memory_test.go index ad2ee21ef3..7e70b55dfb 100644 --- a/internal/storage/memory/memory_test.go +++ b/internal/storage/memory/memory_test.go @@ -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 diff --git a/listen_test.go b/listen_test.go index 8c8cc0dd68..9134e357a2 100644 --- a/listen_test.go +++ b/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 { diff --git a/mount_test.go b/mount_test.go index 9460e51782..19311febdb 100644 --- a/mount_test.go +++ b/mount_test.go @@ -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) diff --git a/prefork_test.go b/prefork_test.go index d33211c583..b71bb56ef0 100644 --- a/prefork_test.go +++ b/prefork_test.go @@ -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, "")) } diff --git a/redirect_test.go b/redirect_test.go index dee9b4193c..7ae0ce2afd 100644 --- a/redirect_test.go +++ b/redirect_test.go @@ -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) } } diff --git a/router_test.go b/router_test.go index 50a3109b39..9bd95e0a94 100644 --- a/router_test.go +++ b/router_test.go @@ -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) {