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