...

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

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

     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