github.com/99designs/gqlgen@v0.17.45/codegen/testserver/singlefile/defaults_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 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 }