...

Source file src/github.com/99designs/gqlgen/codegen/testserver/followschema/defaults_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  func assertDefaults(t *testing.T, ret *DefaultParametersMirror) {
    14  	require.NotNil(t, ret)
    15  	require.NotNil(t, ret.FalsyBoolean)
    16  	require.Equal(t, *ret.FalsyBoolean, false)
    17  	require.NotNil(t, ret.TruthyBoolean)
    18  	require.Equal(t, *ret.TruthyBoolean, true)
    19  }
    20  
    21  func TestDefaults(t *testing.T) {
    22  	resolvers := &Stub{}
    23  	srv := handler.NewDefaultServer(NewExecutableSchema(Config{Resolvers: resolvers}))
    24  	c := client.New(srv)
    25  
    26  	t.Run("default field parameters", func(t *testing.T) {
    27  		resolvers.QueryResolver.DefaultParameters = func(
    28  			ctx context.Context,
    29  			falsyBoolean, truthyBoolean *bool,
    30  		) (*DefaultParametersMirror, error) {
    31  			return &DefaultParametersMirror{
    32  				FalsyBoolean:  falsyBoolean,
    33  				TruthyBoolean: truthyBoolean,
    34  			}, nil
    35  		}
    36  
    37  		var resp struct{ DefaultParameters *DefaultParametersMirror }
    38  		err := c.Post(`query {
    39  			defaultParameters {
    40  				falsyBoolean
    41  				truthyBoolean
    42  			}
    43  		}`, &resp)
    44  		require.NoError(t, err)
    45  		assertDefaults(t, resp.DefaultParameters)
    46  	})
    47  
    48  	t.Run("default input fields", func(t *testing.T) {
    49  		resolvers.MutationResolver.DefaultInput = func(
    50  			ctx context.Context,
    51  			input DefaultInput,
    52  		) (*DefaultParametersMirror, error) {
    53  			return &DefaultParametersMirror{
    54  				FalsyBoolean:  input.FalsyBoolean,
    55  				TruthyBoolean: input.TruthyBoolean,
    56  			}, nil
    57  		}
    58  
    59  		var resp struct{ DefaultInput *DefaultParametersMirror }
    60  		err := c.Post(`mutation {
    61  			defaultInput(input: {}) {
    62  				falsyBoolean
    63  				truthyBoolean
    64  			}
    65  		}`, &resp)
    66  		require.NoError(t, err)
    67  		assertDefaults(t, resp.DefaultInput)
    68  	})
    69  }
    70  

View as plain text