...
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 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 }
46
View as plain text