github.com/99designs/gqlgen@v0.17.45/codegen/testserver/singlefile/fields_order_test.go (about) 1 package singlefile 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 9 "github.com/99designs/gqlgen/client" 10 "github.com/99designs/gqlgen/graphql/handler" 11 ) 12 13 type FieldsOrderPayloadResults struct { 14 OverrideValueViaInput struct { 15 FirstFieldValue *string `json:"firstFieldValue"` 16 } `json:"overrideValueViaInput"` 17 } 18 19 func TestFieldsOrder(t *testing.T) { 20 resolvers := &Stub{} 21 22 c := client.New(handler.NewDefaultServer(NewExecutableSchema(Config{Resolvers: resolvers}))) 23 resolvers.FieldsOrderInputResolver.OverrideFirstField = func(ctx context.Context, in *FieldsOrderInput, data *string) error { 24 if data != nil { 25 in.FirstField = data 26 } 27 return nil 28 } 29 resolvers.MutationResolver.OverrideValueViaInput = func(ctx context.Context, in FieldsOrderInput) (ret *FieldsOrderPayload, err error) { 30 ret = &FieldsOrderPayload{ 31 FirstFieldValue: in.FirstField, 32 } 33 return 34 } 35 36 t.Run("firstField", func(t *testing.T) { 37 var resp FieldsOrderPayloadResults 38 39 err := c.Post(`mutation { 40 overrideValueViaInput(input: { firstField:"newName" }) { 41 firstFieldValue 42 } 43 }`, &resp) 44 require.NoError(t, err) 45 46 require.NotNil(t, resp.OverrideValueViaInput.FirstFieldValue) 47 require.Equal(t, "newName", *resp.OverrideValueViaInput.FirstFieldValue) 48 }) 49 50 t.Run("firstField/override", func(t *testing.T) { 51 var resp FieldsOrderPayloadResults 52 53 err := c.Post(`mutation { overrideValueViaInput(input: { 54 firstField:"newName", 55 overrideFirstField: "override" 56 }) { 57 firstFieldValue 58 } 59 }`, &resp) 60 require.NoError(t, err) 61 62 require.NotNil(t, resp.OverrideValueViaInput.FirstFieldValue) 63 require.NotEqual(t, "newName", *resp.OverrideValueViaInput.FirstFieldValue) 64 require.Equal(t, "override", *resp.OverrideValueViaInput.FirstFieldValue) 65 }) 66 }