...

Source file src/github.com/99designs/gqlgen/codegen/testserver/followschema/scalar_context_test.go

Documentation: github.com/99designs/gqlgen/codegen/testserver/followschema

     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