From bbb0c9590e8da828fe7192c9f5350ca7bda2418d Mon Sep 17 00:00:00 2001 From: Oleksandr Redko Date: Mon, 27 May 2024 16:59:51 +0300 Subject: [PATCH 1/5] chore: fix tests, pin golangci-lint version (#3105) --- .github/workflows/lint.yml | 8 ++++---- .golangci.yml | 1 + graphql/handler/extension/apq_test.go | 9 +++++---- graphql/handler/extension/introspection_test.go | 4 +++- graphql/handler_test.go | 8 ++++---- internal/code/packages_test.go | 2 +- 6 files changed, 18 insertions(+), 14 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index aa38fcd0068..ac0163ea5b1 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -12,6 +12,8 @@ concurrency: cancel-in-progress: true jobs: golangci-lint: + env: + GOLANGCI_LINT_VERSION: v1.59.0 strategy: matrix: go: ["1.21", "1.22"] @@ -24,11 +26,9 @@ jobs: - name: golangci-lint uses: golangci/golangci-lint-action@v6.0.1 with: - version: latest - args: '--timeout 5m' + version: ${{ env.GOLANGCI_LINT_VERSION }} - name: golangci-lint examples uses: golangci/golangci-lint-action@v6.0.1 with: - version: latest - args: '--timeout 5m' + version: ${{ env.GOLANGCI_LINT_VERSION }} working-directory: _examples diff --git a/.golangci.yml b/.golangci.yml index a24dbc3acc5..f67d1262183 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,5 +1,6 @@ run: tests: true + timeout: 5m linters-settings: errcheck: diff --git a/graphql/handler/extension/apq_test.go b/graphql/handler/extension/apq_test.go index 33f2c7b15b3..128aab4d989 100644 --- a/graphql/handler/extension/apq_test.go +++ b/graphql/handler/extension/apq_test.go @@ -6,6 +6,7 @@ import ( "testing" "github.com/stretchr/testify/require" + "github.com/vektah/gqlparser/v2/gqlerror" "github.com/99designs/gqlgen/graphql" "github.com/99designs/gqlgen/graphql/handler/extension" @@ -43,7 +44,7 @@ func TestAPQ(t *testing.T) { Query: "original query", } err := extension.AutomaticPersistedQuery{graphql.MapCache{}}.MutateOperationParameters(ctx, params) - require.Nil(t, err) + require.Equal(t, (*gqlerror.Error)(nil), err) require.Equal(t, "original query", params.Query) }) @@ -76,7 +77,7 @@ func TestAPQ(t *testing.T) { } cache := graphql.MapCache{} err := extension.AutomaticPersistedQuery{cache}.MutateOperationParameters(ctx, params) - require.Nil(t, err) + require.Equal(t, (*gqlerror.Error)(nil), err) require.Equal(t, "{ me { name } }", params.Query) require.Equal(t, "{ me { name } }", cache[hash]) @@ -95,7 +96,7 @@ func TestAPQ(t *testing.T) { } cache := graphql.MapCache{} err := extension.AutomaticPersistedQuery{cache}.MutateOperationParameters(ctx, params) - require.Nil(t, err) + require.Equal(t, (*gqlerror.Error)(nil), err) require.Equal(t, "{ me { name } }", params.Query) require.Equal(t, "{ me { name } }", cache[hash]) @@ -115,7 +116,7 @@ func TestAPQ(t *testing.T) { hash: query, } err := extension.AutomaticPersistedQuery{cache}.MutateOperationParameters(ctx, params) - require.Nil(t, err) + require.Equal(t, (*gqlerror.Error)(nil), err) require.Equal(t, "{ me { name } }", params.Query) }) diff --git a/graphql/handler/extension/introspection_test.go b/graphql/handler/extension/introspection_test.go index e5f7032cd8a..c20904299f9 100644 --- a/graphql/handler/extension/introspection_test.go +++ b/graphql/handler/extension/introspection_test.go @@ -5,6 +5,7 @@ import ( "testing" "github.com/stretchr/testify/require" + "github.com/vektah/gqlparser/v2/gqlerror" "github.com/99designs/gqlgen/graphql" ) @@ -13,6 +14,7 @@ func TestIntrospection(t *testing.T) { rc := &graphql.OperationContext{ DisableIntrospection: true, } - require.NoError(t, Introspection{}.MutateOperationContext(context.Background(), rc)) + err := Introspection{}.MutateOperationContext(context.Background(), rc) + require.Equal(t, (*gqlerror.Error)(nil), err) require.False(t, rc.DisableIntrospection) } diff --git a/graphql/handler_test.go b/graphql/handler_test.go index 38d9b45b4f3..4511c6f92d0 100644 --- a/graphql/handler_test.go +++ b/graphql/handler_test.go @@ -5,6 +5,7 @@ import ( "testing" "github.com/stretchr/testify/require" + "github.com/vektah/gqlparser/v2/gqlerror" ) func TestAddUploadToOperations(t *testing.T) { @@ -22,8 +23,7 @@ func TestAddUploadToOperations(t *testing.T) { } path := "variables.req.0.file" err := params.AddUpload(upload, key, path) - require.NoError(t, err) - require.Equal(t, "input: path is missing \"variables.\" prefix, key: 0, path: variables.req.0.file", err.Error()) + require.EqualError(t, err, "input: path is missing \"variables.\" prefix, key: 0, path: variables.req.0.file") }) t.Run("valid variable", func(t *testing.T) { @@ -49,7 +49,7 @@ func TestAddUploadToOperations(t *testing.T) { path := "variables.file" err := request.AddUpload(upload, key, path) - require.NoError(t, err) + require.Equal(t, (*gqlerror.Error)(nil), err) require.Equal(t, expected, request) }) @@ -85,7 +85,7 @@ func TestAddUploadToOperations(t *testing.T) { path := "variables.req.0.file" err := request.AddUpload(upload, key, path) - require.Nil(t, err) + require.Equal(t, (*gqlerror.Error)(nil), err) require.Equal(t, expected, request) }) diff --git a/internal/code/packages_test.go b/internal/code/packages_test.go index a51f1f1e80c..cec8e79d964 100644 --- a/internal/code/packages_test.go +++ b/internal/code/packages_test.go @@ -56,7 +56,7 @@ func initialState(t *testing.T, opts ...Option) *Packages { "github.com/99designs/gqlgen/internal/code/testdata/a", "github.com/99designs/gqlgen/internal/code/testdata/b", ) - require.Nil(t, p.Errors()) + require.Empty(t, p.Errors()) require.Equal(t, 1, p.numLoadCalls) require.Equal(t, 0, p.numNameCalls) From c732bcdecad5c81c72a373287acd808bdcf6c148 Mon Sep 17 00:00:00 2001 From: Oleksandr Redko Date: Mon, 27 May 2024 15:04:04 +0300 Subject: [PATCH 2/5] Resolve Merge conflict Signed-off-by: Steve Coffman --- graphql/handler/extension/apq_test.go | 13 +++++++------ graphql/handler_test.go | 1 - internal/code/packages_test.go | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/graphql/handler/extension/apq_test.go b/graphql/handler/extension/apq_test.go index 128aab4d989..5c3e7df24b0 100644 --- a/graphql/handler/extension/apq_test.go +++ b/graphql/handler/extension/apq_test.go @@ -43,9 +43,10 @@ func TestAPQ(t *testing.T) { params := &graphql.RawParams{ Query: "original query", } - err := extension.AutomaticPersistedQuery{graphql.MapCache{}}.MutateOperationParameters(ctx, params) - require.Equal(t, (*gqlerror.Error)(nil), err) + err := extension.AutomaticPersistedQuery{Cache: graphql.MapCache{}}.MutateOperationParameters(ctx, params) + + require.Equal(t, (*gqlerror.Error)(nil), err) require.Equal(t, "original query", params.Query) }) @@ -60,7 +61,7 @@ func TestAPQ(t *testing.T) { }, } - err := extension.AutomaticPersistedQuery{graphql.MapCache{}}.MutateOperationParameters(ctx, params) + err := extension.AutomaticPersistedQuery{Cache: graphql.MapCache{}}.MutateOperationParameters(ctx, params) require.Equal(t, "PersistedQueryNotFound", err.Message) }) @@ -76,9 +77,9 @@ func TestAPQ(t *testing.T) { }, } cache := graphql.MapCache{} - err := extension.AutomaticPersistedQuery{cache}.MutateOperationParameters(ctx, params) - require.Equal(t, (*gqlerror.Error)(nil), err) + err := extension.AutomaticPersistedQuery{Cache: cache}.MutateOperationParameters(ctx, params) + require.Equal(t, (*gqlerror.Error)(nil), err) require.Equal(t, "{ me { name } }", params.Query) require.Equal(t, "{ me { name } }", cache[hash]) }) @@ -116,8 +117,8 @@ func TestAPQ(t *testing.T) { hash: query, } err := extension.AutomaticPersistedQuery{cache}.MutateOperationParameters(ctx, params) - require.Equal(t, (*gqlerror.Error)(nil), err) + require.Equal(t, (*gqlerror.Error)(nil), err) require.Equal(t, "{ me { name } }", params.Query) }) diff --git a/graphql/handler_test.go b/graphql/handler_test.go index 4511c6f92d0..85a21e3e597 100644 --- a/graphql/handler_test.go +++ b/graphql/handler_test.go @@ -86,7 +86,6 @@ func TestAddUploadToOperations(t *testing.T) { path := "variables.req.0.file" err := request.AddUpload(upload, key, path) require.Equal(t, (*gqlerror.Error)(nil), err) - require.Equal(t, expected, request) }) } diff --git a/internal/code/packages_test.go b/internal/code/packages_test.go index cec8e79d964..d390741c568 100644 --- a/internal/code/packages_test.go +++ b/internal/code/packages_test.go @@ -56,8 +56,8 @@ func initialState(t *testing.T, opts ...Option) *Packages { "github.com/99designs/gqlgen/internal/code/testdata/a", "github.com/99designs/gqlgen/internal/code/testdata/b", ) - require.Empty(t, p.Errors()) + require.Empty(t, p.Errors()) require.Equal(t, 1, p.numLoadCalls) require.Equal(t, 0, p.numNameCalls) require.Equal(t, "a", pkgs[0].Name) From 6437db47798ece2e62f8834fbb0ad7956d7ec3f1 Mon Sep 17 00:00:00 2001 From: Steve Coffman Date: Sun, 26 May 2024 19:52:46 -0400 Subject: [PATCH 3/5] Autofixes Signed-off-by: Steve Coffman --- codegen/config/initialisms_test.go | 4 ++-- .../followschema/interfaces_test.go | 2 +- codegen/testserver/followschema/nulls_test.go | 2 +- .../testserver/singlefile/interfaces_test.go | 2 +- codegen/testserver/singlefile/nulls_test.go | 2 +- graphql/context_response_test.go | 2 +- graphql/executor/executor_test.go | 14 ++++++------- graphql/handler/server_test.go | 8 ++++---- graphql/handler/transport/headers_test.go | 20 +++++++++---------- .../transport/http_form_multipart_test.go | 10 +++++----- plugin/federation/federation_test.go | 8 ++++---- 11 files changed, 37 insertions(+), 37 deletions(-) diff --git a/codegen/config/initialisms_test.go b/codegen/config/initialisms_test.go index 13c0da24659..f18384a552f 100644 --- a/codegen/config/initialisms_test.go +++ b/codegen/config/initialisms_test.go @@ -24,13 +24,13 @@ func TestGoInitialismsConfig(t *testing.T) { t.Run("initialism config appends if desired", func(t *testing.T) { tt := GoInitialismsConfig{ReplaceDefaults: false, Initialisms: []string{"ASDF"}} result := tt.determineGoInitialisms() - assert.Equal(t, len(templates.CommonInitialisms)+1, len(result)) + assert.Len(t, result, len(templates.CommonInitialisms)+1) assert.True(t, result["ASDF"]) }) t.Run("initialism config replaces if desired", func(t *testing.T) { tt := GoInitialismsConfig{ReplaceDefaults: true, Initialisms: []string{"ASDF"}} result := tt.determineGoInitialisms() - assert.Equal(t, 1, len(result)) + assert.Len(t, result, 1) assert.True(t, result["ASDF"]) }) t.Run("initialism config uppercases the initialsms", func(t *testing.T) { diff --git a/codegen/testserver/followschema/interfaces_test.go b/codegen/testserver/followschema/interfaces_test.go index 3843212e36c..15d2b380efd 100644 --- a/codegen/testserver/followschema/interfaces_test.go +++ b/codegen/testserver/followschema/interfaces_test.go @@ -250,7 +250,7 @@ func TestInterfaces(t *testing.T) { } `, &resp) - require.Equal(t, 2, len(resp.Shapes)) + require.Len(t, resp.Shapes, 2) require.Equal(t, float64(-1), resp.Shapes[0].Coordinates.X) require.Equal(t, float64(0), resp.Shapes[0].Coordinates.Y) require.Equal(t, float64(1), resp.Shapes[1].Coordinates.X) diff --git a/codegen/testserver/followschema/nulls_test.go b/codegen/testserver/followschema/nulls_test.go index edd7237bb59..209d12b6c55 100644 --- a/codegen/testserver/followschema/nulls_test.go +++ b/codegen/testserver/followschema/nulls_test.go @@ -86,7 +86,7 @@ func TestNullBubbling(t *testing.T) { err := c.Post(`query { valid, errorList { id } }`, &resp) require.NoError(t, err) - require.Equal(t, 1, len(resp.ErrorList)) + require.Len(t, resp.ErrorList, 1) require.Nil(t, resp.ErrorList[0]) require.Equal(t, "Ok", resp.Valid) }) diff --git a/codegen/testserver/singlefile/interfaces_test.go b/codegen/testserver/singlefile/interfaces_test.go index 0fea26f35e3..ea4e8e90704 100644 --- a/codegen/testserver/singlefile/interfaces_test.go +++ b/codegen/testserver/singlefile/interfaces_test.go @@ -250,7 +250,7 @@ func TestInterfaces(t *testing.T) { } `, &resp) - require.Equal(t, 2, len(resp.Shapes)) + require.Len(t, resp.Shapes, 2) require.Equal(t, float64(-1), resp.Shapes[0].Coordinates.X) require.Equal(t, float64(0), resp.Shapes[0].Coordinates.Y) require.Equal(t, float64(1), resp.Shapes[1].Coordinates.X) diff --git a/codegen/testserver/singlefile/nulls_test.go b/codegen/testserver/singlefile/nulls_test.go index 0c9f568d63b..dc950489994 100644 --- a/codegen/testserver/singlefile/nulls_test.go +++ b/codegen/testserver/singlefile/nulls_test.go @@ -86,7 +86,7 @@ func TestNullBubbling(t *testing.T) { err := c.Post(`query { valid, errorList { id } }`, &resp) require.NoError(t, err) - require.Equal(t, 1, len(resp.ErrorList)) + require.Len(t, resp.ErrorList, 1) require.Nil(t, resp.ErrorList[0]) require.Equal(t, "Ok", resp.Valid) }) diff --git a/graphql/context_response_test.go b/graphql/context_response_test.go index acafe95aaec..578e6d57ebf 100644 --- a/graphql/context_response_test.go +++ b/graphql/context_response_test.go @@ -85,7 +85,7 @@ func TestGetErrorFromPresenter(t *testing.T) { errs := GetErrors(ctx) // because we are still presenting the error it is not expected to be returned, but this should not deadlock. - require.Len(t, errs, 0) + require.Empty(t, errs) return DefaultErrorPresenter(ctx, err) }, nil) diff --git a/graphql/executor/executor_test.go b/graphql/executor/executor_test.go index 9e15c5d46e9..be81e2a4e09 100644 --- a/graphql/executor/executor_test.go +++ b/graphql/executor/executor_test.go @@ -27,14 +27,14 @@ func TestExecutor(t *testing.T) { t.Run("no operation", func(t *testing.T) { resp := query(exec, "", "") assert.Equal(t, "", string(resp.Data)) - assert.Equal(t, 1, len(resp.Errors)) + assert.Len(t, resp.Errors, 1) assert.Equal(t, errcode.ValidationFailed, resp.Errors[0].Extensions["code"]) }) t.Run("bad operation", func(t *testing.T) { resp := query(exec, "badOp", "query test { name }") assert.Equal(t, "", string(resp.Data)) - assert.Equal(t, 1, len(resp.Errors)) + assert.Len(t, resp.Errors, 1) assert.Equal(t, errcode.ValidationFailed, resp.Errors[0].Extensions["code"]) }) }) @@ -134,9 +134,9 @@ func TestExecutor(t *testing.T) { resp := query(exec, "", "invalid") assert.Equal(t, "", string(resp.Data)) - assert.Equal(t, 1, len(resp.Errors)) - assert.Equal(t, 1, len(errors1)) - assert.Equal(t, 1, len(errors2)) + assert.Len(t, resp.Errors, 1) + assert.Len(t, errors1, 1) + assert.Len(t, errors2, 1) }) t.Run("query caching", func(t *testing.T) { @@ -216,8 +216,8 @@ func TestErrorServer(t *testing.T) { resp := query(exec, "", "{name}") assert.Equal(t, "null", string(resp.Data)) - assert.Equal(t, 1, len(errors1)) - assert.Equal(t, 1, len(errors2)) + assert.Len(t, errors1, 1) + assert.Len(t, errors2, 1) }) } diff --git a/graphql/handler/server_test.go b/graphql/handler/server_test.go index 232d13c56c9..6e40c92d877 100644 --- a/graphql/handler/server_test.go +++ b/graphql/handler/server_test.go @@ -107,8 +107,8 @@ func TestServer(t *testing.T) { resp := get(srv, "/foo?query=invalid") assert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String()) - assert.Equal(t, 1, len(errors1)) - assert.Equal(t, 1, len(errors2)) + assert.Len(t, errors1, 1) + assert.Len(t, errors2, 1) }) t.Run("query caching", func(t *testing.T) { @@ -159,8 +159,8 @@ func TestErrorServer(t *testing.T) { resp := get(srv, "/foo?query={name}") assert.Equal(t, http.StatusOK, resp.Code, resp.Body.String()) - assert.Equal(t, 1, len(errors1)) - assert.Equal(t, 1, len(errors2)) + assert.Len(t, errors1, 1) + assert.Len(t, errors2, 1) }) } diff --git a/graphql/handler/transport/headers_test.go b/graphql/handler/transport/headers_test.go index 93fa4bf6b6a..75876ab5a15 100644 --- a/graphql/handler/transport/headers_test.go +++ b/graphql/handler/transport/headers_test.go @@ -24,7 +24,7 @@ func TestHeadersWithPOST(t *testing.T) { resp := doRequest(h, "POST", "/graphql", `{"query":"{ name }"}`, "application/json") assert.Equal(t, http.StatusOK, resp.Code) - assert.Equal(t, 1, len(resp.Header())) + assert.Len(t, resp.Header(), 1) assert.Equal(t, "application/json", resp.Header().Get("Content-Type")) }) @@ -39,7 +39,7 @@ func TestHeadersWithPOST(t *testing.T) { resp := doRequest(h, "POST", "/graphql", `{"query":"{ name }"}`, "application/json") assert.Equal(t, http.StatusOK, resp.Code) - assert.Equal(t, 2, len(resp.Header())) + assert.Len(t, resp.Header(), 2) assert.Equal(t, "application/json; charset: utf8", resp.Header().Get("Content-Type")) assert.Equal(t, "dummy-post", resp.Header().Get("Other-Header")) assert.Equal(t, "another-one", resp.Header().Values("Other-Header")[1]) @@ -53,7 +53,7 @@ func TestHeadersWithGET(t *testing.T) { resp := doRequest(h, "GET", "/graphql?query={name}", "", "application/json") assert.Equal(t, http.StatusOK, resp.Code) - assert.Equal(t, 1, len(resp.Header())) + assert.Len(t, resp.Header(), 1) assert.Equal(t, "application/json", resp.Header().Get("Content-Type")) }) @@ -68,7 +68,7 @@ func TestHeadersWithGET(t *testing.T) { resp := doRequest(h, "GET", "/graphql?query={name}", "", "application/json") assert.Equal(t, http.StatusOK, resp.Code) - assert.Equal(t, 2, len(resp.Header())) + assert.Len(t, resp.Header(), 2) assert.Equal(t, "application/json; charset: utf8", resp.Header().Get("Content-Type")) assert.Equal(t, "dummy-get", resp.Header().Get("Other-Header")) }) @@ -81,7 +81,7 @@ func TestHeadersWithGRAPHQL(t *testing.T) { resp := doRequest(h, "POST", "/graphql", `{ name }`, "application/graphql") assert.Equal(t, http.StatusOK, resp.Code) - assert.Equal(t, 1, len(resp.Header())) + assert.Len(t, resp.Header(), 1) assert.Equal(t, "application/json", resp.Header().Get("Content-Type")) }) @@ -96,7 +96,7 @@ func TestHeadersWithGRAPHQL(t *testing.T) { resp := doRequest(h, "POST", "/graphql", `{ name }`, "application/graphql") assert.Equal(t, http.StatusOK, resp.Code) - assert.Equal(t, 2, len(resp.Header())) + assert.Len(t, resp.Header(), 2) assert.Equal(t, "application/json; charset: utf8", resp.Header().Get("Content-Type")) assert.Equal(t, "dummy-get-qraphql", resp.Header().Get("Other-Header")) }) @@ -109,7 +109,7 @@ func TestHeadersWithFormUrlEncoded(t *testing.T) { resp := doRequest(h, "POST", "/graphql", `{ name }`, "application/x-www-form-urlencoded") assert.Equal(t, http.StatusOK, resp.Code) - assert.Equal(t, 1, len(resp.Header())) + assert.Len(t, resp.Header(), 1) assert.Equal(t, "application/json", resp.Header().Get("Content-Type")) }) @@ -124,7 +124,7 @@ func TestHeadersWithFormUrlEncoded(t *testing.T) { resp := doRequest(h, "POST", "/graphql", `{ name }`, "application/x-www-form-urlencoded") assert.Equal(t, http.StatusOK, resp.Code) - assert.Equal(t, 2, len(resp.Header())) + assert.Len(t, resp.Header(), 2) assert.Equal(t, "application/json; charset: utf8", resp.Header().Get("Content-Type")) assert.Equal(t, "dummy-get-urlencoded-form", resp.Header().Get("Other-Header")) }) @@ -168,7 +168,7 @@ func TestHeadersWithMULTIPART(t *testing.T) { resp := httptest.NewRecorder() h.ServeHTTP(resp, req) require.Equal(t, http.StatusOK, resp.Code, resp.Body.String()) - assert.Equal(t, 1, len(resp.Header())) + assert.Len(t, resp.Header(), 1) assert.Equal(t, "application/json", resp.Header().Get("Content-Type")) }) @@ -213,7 +213,7 @@ func TestHeadersWithMULTIPART(t *testing.T) { resp := httptest.NewRecorder() h.ServeHTTP(resp, req) require.Equal(t, http.StatusOK, resp.Code, resp.Body.String()) - assert.Equal(t, 2, len(resp.Header())) + assert.Len(t, resp.Header(), 2) assert.Equal(t, "application/json; charset: utf8", resp.Header().Get("Content-Type")) assert.Equal(t, "dummy-multipart", resp.Header().Get("Other-Header")) }) diff --git a/graphql/handler/transport/http_form_multipart_test.go b/graphql/handler/transport/http_form_multipart_test.go index 45656b504e8..778f717b00e 100644 --- a/graphql/handler/transport/http_form_multipart_test.go +++ b/graphql/handler/transport/http_form_multipart_test.go @@ -46,7 +46,7 @@ func TestFileUpload(t *testing.T) { t.Run("valid single file upload", func(t *testing.T) { es.ExecFunc = func(ctx context.Context) graphql.ResponseHandler { op := graphql.GetOperationContext(ctx).Operation - require.Equal(t, 1, len(op.VariableDefinitions)) + require.Len(t, op.VariableDefinitions, 1) require.Equal(t, "file", op.VariableDefinitions[0].Variable) return graphql.OneShot(&graphql.Response{Data: []byte(`{"singleUpload":"test"}`)}) } @@ -72,7 +72,7 @@ func TestFileUpload(t *testing.T) { t.Run("valid single file upload with payload", func(t *testing.T) { es.ExecFunc = func(ctx context.Context) graphql.ResponseHandler { op := graphql.GetOperationContext(ctx).Operation - require.Equal(t, 1, len(op.VariableDefinitions)) + require.Len(t, op.VariableDefinitions, 1) require.Equal(t, "req", op.VariableDefinitions[0].Variable) return graphql.OneShot(&graphql.Response{Data: []byte(`{"singleUploadWithPayload":"test"}`)}) } @@ -98,7 +98,7 @@ func TestFileUpload(t *testing.T) { t.Run("valid file list upload", func(t *testing.T) { es.ExecFunc = func(ctx context.Context) graphql.ResponseHandler { op := graphql.GetOperationContext(ctx).Operation - require.Equal(t, 1, len(op.VariableDefinitions)) + require.Len(t, op.VariableDefinitions, 1) require.Equal(t, "files", op.VariableDefinitions[0].Variable) return graphql.OneShot(&graphql.Response{Data: []byte(`{"multipleUpload":[{"id":1},{"id":2}]}`)}) } @@ -130,7 +130,7 @@ func TestFileUpload(t *testing.T) { t.Run("valid file list upload with payload", func(t *testing.T) { es.ExecFunc = func(ctx context.Context) graphql.ResponseHandler { op := graphql.GetOperationContext(ctx).Operation - require.Equal(t, 1, len(op.VariableDefinitions)) + require.Len(t, op.VariableDefinitions, 1) require.Equal(t, "req", op.VariableDefinitions[0].Variable) return graphql.OneShot(&graphql.Response{Data: []byte(`{"multipleUploadWithPayload":[{"id":1},{"id":2}]}`)}) } @@ -163,7 +163,7 @@ func TestFileUpload(t *testing.T) { test := func(uploadMaxMemory int64) { es.ExecFunc = func(ctx context.Context) graphql.ResponseHandler { op := graphql.GetOperationContext(ctx).Operation - require.Equal(t, 1, len(op.VariableDefinitions)) + require.Len(t, op.VariableDefinitions, 1) require.Equal(t, "req", op.VariableDefinitions[0].Variable) return graphql.OneShot(&graphql.Response{Data: []byte(`{"multipleUploadWithPayload":[{"id":1},{"id":2}]}`)}) } diff --git a/plugin/federation/federation_test.go b/plugin/federation/federation_test.go index 7d912e0216d..aff0d8f689f 100644 --- a/plugin/federation/federation_test.go +++ b/plugin/federation/federation_test.go @@ -46,7 +46,7 @@ func TestWithEntities(t *testing.T) { require.Equal(t, "String", f.Entities[1].Resolvers[0].KeyFields[0].Definition.Type.Name()) require.Equal(t, "MoreNesting", f.Entities[2].Name) - require.Len(t, f.Entities[2].Resolvers, 0) + require.Empty(t, f.Entities[2].Resolvers) require.Equal(t, "MultiHelloMultiKey", f.Entities[3].Name) require.Len(t, f.Entities[3].Resolvers, 2) @@ -98,7 +98,7 @@ func TestNoEntities(t *testing.T) { err := f.MutateConfig(cfg) require.NoError(t, err) - require.Len(t, f.Entities, 0) + require.Empty(t, f.Entities) } func TestUnusedInterfaceKeyDirective(t *testing.T) { @@ -106,7 +106,7 @@ func TestUnusedInterfaceKeyDirective(t *testing.T) { err := f.MutateConfig(cfg) require.NoError(t, err) - require.Len(t, f.Entities, 0) + require.Empty(t, f.Entities) } func TestInterfaceKeyDirective(t *testing.T) { @@ -209,7 +209,7 @@ func TestMultiWithOmitSliceElemPointersCfg(t *testing.T) { func TestHandlesRequiresArgumentCorrectlyIfNoSpace(t *testing.T) { requiresFieldSet := fieldset.New("foo bar baz(limit:4)", nil) - assert.Equal(t, 3, len(requiresFieldSet)) + assert.Len(t, requiresFieldSet, 3) assert.Equal(t, "Foo", requiresFieldSet[0].ToGo()) assert.Equal(t, "Bar", requiresFieldSet[1].ToGo()) assert.Equal(t, "Baz(limit:4)", requiresFieldSet[2].ToGo()) From 265204cf411daeb2d93e65a509f3e779e18e5967 Mon Sep 17 00:00:00 2001 From: Steve Coffman Date: Sun, 26 May 2024 20:10:04 -0400 Subject: [PATCH 4/5] Lots more fixes and formatting Signed-off-by: Steve Coffman --- _examples/chat/chat_test.go | 3 +-- api/generate_test.go | 3 +-- .../testserver/followschema/interfaces_test.go | 8 ++++---- .../testserver/singlefile/interfaces_test.go | 8 ++++---- graphql/duration_test.go | 5 +++-- graphql/id_test.go | 17 +++++++++-------- graphql/playground/helper_test.go | 11 ++++++----- plugin/federation/fieldset/fieldset_test.go | 3 ++- 8 files changed, 30 insertions(+), 28 deletions(-) diff --git a/_examples/chat/chat_test.go b/_examples/chat/chat_test.go index e0977d715ee..007a1586c37 100644 --- a/_examples/chat/chat_test.go +++ b/_examples/chat/chat_test.go @@ -6,7 +6,6 @@ import ( "sync" "testing" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/99designs/gqlgen/client" @@ -50,7 +49,7 @@ func TestChatSubscriptions(t *testing.T) { b:post(text:"Hello Vektah!", roomName:"#gophers%d", username:"andrey") { id } c:post(text:"Whats up?", roomName:"#gophers%d", username:"vektah") { id } }`, i, i, i), &resp) - assert.NoError(t, err) + require.NoError(t, err) }() msg.err = sub.Next(&msg.resp) diff --git a/api/generate_test.go b/api/generate_test.go index 1075a1c016a..0572042ef2d 100644 --- a/api/generate_test.go +++ b/api/generate_test.go @@ -5,7 +5,6 @@ import ( "path/filepath" "testing" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/99designs/gqlgen/codegen/config" @@ -47,7 +46,7 @@ func TestGenerate(t *testing.T) { cfg, err := config.LoadConfigFromDefaultLocations() require.NoError(t, err, "failed to load config") err = Generate(cfg) - assert.NoError(t, err, "failed to generate code") + require.NoError(t, err, "failed to generate code") }) } } diff --git a/codegen/testserver/followschema/interfaces_test.go b/codegen/testserver/followschema/interfaces_test.go index 15d2b380efd..0b470f38e9d 100644 --- a/codegen/testserver/followschema/interfaces_test.go +++ b/codegen/testserver/followschema/interfaces_test.go @@ -251,10 +251,10 @@ func TestInterfaces(t *testing.T) { `, &resp) require.Len(t, resp.Shapes, 2) - require.Equal(t, float64(-1), resp.Shapes[0].Coordinates.X) - require.Equal(t, float64(0), resp.Shapes[0].Coordinates.Y) - require.Equal(t, float64(1), resp.Shapes[1].Coordinates.X) - require.Equal(t, float64(1), resp.Shapes[1].Coordinates.Y) + require.InEpsilon(t, float64(-1), resp.Shapes[0].Coordinates.X, 0.02) + require.InEpsilon(t, float64(0), resp.Shapes[0].Coordinates.Y, 0.02) + require.InEpsilon(t, float64(1), resp.Shapes[1].Coordinates.X, 0.02) + require.InEpsilon(t, float64(1), resp.Shapes[1].Coordinates.Y, 0.02) }) t.Run("fragment on interface must return merged fields", func(t *testing.T) { diff --git a/codegen/testserver/singlefile/interfaces_test.go b/codegen/testserver/singlefile/interfaces_test.go index ea4e8e90704..a8572679c09 100644 --- a/codegen/testserver/singlefile/interfaces_test.go +++ b/codegen/testserver/singlefile/interfaces_test.go @@ -251,10 +251,10 @@ func TestInterfaces(t *testing.T) { `, &resp) require.Len(t, resp.Shapes, 2) - require.Equal(t, float64(-1), resp.Shapes[0].Coordinates.X) - require.Equal(t, float64(0), resp.Shapes[0].Coordinates.Y) - require.Equal(t, float64(1), resp.Shapes[1].Coordinates.X) - require.Equal(t, float64(1), resp.Shapes[1].Coordinates.Y) + require.InEpsilon(t, float64(-1), resp.Shapes[0].Coordinates.X, 0.02) + require.InEpsilon(t, float64(0), resp.Shapes[0].Coordinates.Y, 0.02) + require.InEpsilon(t, float64(1), resp.Shapes[1].Coordinates.X, 0.02) + require.InEpsilon(t, float64(1), resp.Shapes[1].Coordinates.Y, 0.02) }) t.Run("fragment on interface must return merged fields", func(t *testing.T) { diff --git a/graphql/duration_test.go b/graphql/duration_test.go index 56b6031f710..2be2ecb8d70 100644 --- a/graphql/duration_test.go +++ b/graphql/duration_test.go @@ -6,14 +6,15 @@ import ( "time" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestDurationMarshaling(t *testing.T) { t.Run("UnmarshalDuration", func(t *testing.T) { d, err := UnmarshalDuration("P2Y") - assert.NoError(t, err) + require.NoError(t, err) - assert.Equal(t, float64(365*24*2), d.Hours()) + assert.InEpsilon(t, float64(365*24*2), d.Hours(), 0.02) }) t.Run("MarshalDuration", func(t *testing.T) { m := MarshalDuration(time.Hour * 365 * 24 * 2) diff --git a/graphql/id_test.go b/graphql/id_test.go index b0dc2318a8c..41e4be86e01 100644 --- a/graphql/id_test.go +++ b/graphql/id_test.go @@ -7,6 +7,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestMarshalID(t *testing.T) { @@ -130,7 +131,7 @@ func TestUnmarshalID(t *testing.T) { if tt.ShouldError { assert.Error(t, err) } else { - assert.NoError(t, err) + require.NoError(t, err) } }) } @@ -143,29 +144,29 @@ func TestMarshalUintID(t *testing.T) { func TestUnMarshalUintID(t *testing.T) { result, err := UnmarshalUintID("12") assert.Equal(t, uint(12), result) - assert.NoError(t, err) + require.NoError(t, err) result, err = UnmarshalUintID(12) assert.Equal(t, uint(12), result) - assert.NoError(t, err) + require.NoError(t, err) result, err = UnmarshalUintID(int64(12)) assert.Equal(t, uint(12), result) - assert.NoError(t, err) + require.NoError(t, err) result, err = UnmarshalUintID(int32(12)) assert.Equal(t, uint(12), result) - assert.NoError(t, err) + require.NoError(t, err) result, err = UnmarshalUintID(int(12)) assert.Equal(t, uint(12), result) - assert.NoError(t, err) + require.NoError(t, err) result, err = UnmarshalUintID(uint32(12)) assert.Equal(t, uint(12), result) - assert.NoError(t, err) + require.NoError(t, err) result, err = UnmarshalUintID(uint64(12)) assert.Equal(t, uint(12), result) - assert.NoError(t, err) + require.NoError(t, err) } diff --git a/graphql/playground/helper_test.go b/graphql/playground/helper_test.go index ad119716862..7b9d3c61064 100644 --- a/graphql/playground/helper_test.go +++ b/graphql/playground/helper_test.go @@ -11,6 +11,7 @@ import ( "github.com/PuerkitoBio/goquery" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func testResourceIntegrity(t *testing.T, handler func(title, endpoint string) http.HandlerFunc) { @@ -19,13 +20,13 @@ func testResourceIntegrity(t *testing.T, handler func(title, endpoint string) ht handler("example.org API", "/query").ServeHTTP(recorder, request) res := recorder.Result() - defer assert.NoError(t, res.Body.Close()) + defer require.NoError(t, res.Body.Close()) assert.Equal(t, http.StatusOK, res.StatusCode) assert.True(t, strings.HasPrefix(res.Header.Get("Content-Type"), "text/html")) doc, err := goquery.NewDocumentFromReader(res.Body) - assert.NoError(t, err) + require.NoError(t, err) assert.NotNil(t, doc) var baseUrl string @@ -58,11 +59,11 @@ func assertNodesIntegrity(t *testing.T, baseUrl string, doc *goquery.Document, s if len(url) != 0 && len(integrity) != 0 { resp, err := http.Get(baseUrl + url) - assert.NoError(t, err) + require.NoError(t, err) hasher := sha256.New() _, err = io.Copy(hasher, resp.Body) - assert.NoError(t, err) - assert.NoError(t, resp.Body.Close()) + require.NoError(t, err) + require.NoError(t, resp.Body.Close()) actual := "sha256-" + base64.StdEncoding.EncodeToString(hasher.Sum(nil)) assert.Equal(t, integrity, actual) } diff --git a/plugin/federation/fieldset/fieldset_test.go b/plugin/federation/fieldset/fieldset_test.go index 74e8524f4e8..a5155bc59c5 100644 --- a/plugin/federation/fieldset/fieldset_test.go +++ b/plugin/federation/fieldset/fieldset_test.go @@ -3,9 +3,10 @@ package fieldset import ( "testing" - "github.com/99designs/gqlgen/codegen" "github.com/stretchr/testify/require" "github.com/vektah/gqlparser/v2/ast" + + "github.com/99designs/gqlgen/codegen" ) func TestUnnestedWithoutPrefix(t *testing.T) { From bc0a4206b018f9fcbbbb6bfc634f64199c648ca6 Mon Sep 17 00:00:00 2001 From: Steve Coffman Date: Sun, 26 May 2024 20:20:20 -0400 Subject: [PATCH 5/5] Add one more Signed-off-by: Steve Coffman --- graphql/handler/transport/websocket_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/graphql/handler/transport/websocket_test.go b/graphql/handler/transport/websocket_test.go index 6d324b4a0a0..24580807a0d 100644 --- a/graphql/handler/transport/websocket_test.go +++ b/graphql/handler/transport/websocket_test.go @@ -347,7 +347,7 @@ func TestWebSocketInitTimeout(t *testing.T) { var msg operationMessage err := c.ReadJSON(&msg) - assert.Error(t, err) + require.Error(t, err) assert.Contains(t, err.Error(), "timeout") })