...

Source file src/github.com/99designs/gqlgen/codegen/testserver/followschema/fields_order_test.go

Documentation: github.com/99designs/gqlgen/codegen/testserver/followschema

     1  package followschema
     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 ret, nil
    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  }
    67  

View as plain text