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