github.com/99designs/gqlgen@v0.17.45/codegen/testserver/singlefile/modelmethod_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 TestModelMethods(t *testing.T) { 14 resolver := &Stub{} 15 resolver.QueryResolver.ModelMethods = func(ctx context.Context) (methods *ModelMethods, e error) { 16 return &ModelMethods{}, nil 17 } 18 resolver.ModelMethodsResolver.ResolverField = func(ctx context.Context, obj *ModelMethods) (b bool, e error) { 19 return true, nil 20 } 21 22 c := client.New(handler.NewDefaultServer( 23 NewExecutableSchema(Config{Resolvers: resolver}), 24 )) 25 t.Run("without context", func(t *testing.T) { 26 var resp struct { 27 ModelMethods struct { 28 NoContext bool 29 } 30 } 31 err := c.Post(`query { modelMethods{ noContext } }`, &resp) 32 require.NoError(t, err) 33 require.True(t, resp.ModelMethods.NoContext) 34 }) 35 t.Run("with context", func(t *testing.T) { 36 var resp struct { 37 ModelMethods struct { 38 WithContext bool 39 } 40 } 41 err := c.Post(`query { modelMethods{ withContext } }`, &resp) 42 require.NoError(t, err) 43 require.True(t, resp.ModelMethods.WithContext) 44 }) 45 }