...
1 package followschema
2
3 import (
4 "context"
5 "math"
6 "testing"
7
8 "github.com/stretchr/testify/require"
9
10 "github.com/99designs/gqlgen/client"
11 "github.com/99designs/gqlgen/graphql/handler"
12 )
13
14 func TestFloatInfAndNaN(t *testing.T) {
15 resolvers := &Stub{}
16
17 c := client.New(handler.NewDefaultServer(NewExecutableSchema(Config{Resolvers: resolvers})))
18
19 resolvers.QueryResolver.Infinity = func(ctx context.Context) (float64, error) {
20 return math.Inf(-1), nil
21 }
22
23 t.Run("errors on marshaller with context", func(t *testing.T) {
24 err := c.Post(`query { infinity }`, nil)
25 require.Error(t, err)
26 })
27 }
28
29 func TestContextPassedToMarshal(t *testing.T) {
30 resolvers := &Stub{}
31
32 c := client.New(handler.NewDefaultServer(NewExecutableSchema(Config{Resolvers: resolvers})))
33
34 resolvers.QueryResolver.StringFromContextInterface = func(ctx context.Context) (*StringFromContextInterface, error) {
35 return &StringFromContextInterface{}, nil
36 }
37 resolvers.QueryResolver.StringFromContextFunction = func(ctx context.Context) (string, error) {
38 return "", nil
39 }
40
41 var res struct {
42 StringFromContextInterface string
43 StringFromContextFunction string
44 }
45 err := c.Post(`query my_name {
46 stringFromContextInterface
47 stringFromContextFunction
48 }`, &res)
49 require.NoError(t, err)
50 require.Equal(t, "stringFromContextInterface", res.StringFromContextInterface)
51 require.Equal(t, "stringFromContextFunction", res.StringFromContextFunction)
52 }
53
View as plain text