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  }