...

Source file src/github.com/99designs/gqlgen/codegen/testserver/followschema/primitive_objects_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/assert"
     8  
     9  	"github.com/99designs/gqlgen/client"
    10  	"github.com/99designs/gqlgen/graphql/handler"
    11  )
    12  
    13  func TestPrimitiveObjects(t *testing.T) {
    14  	resolvers := &Stub{}
    15  	resolvers.QueryResolver.PrimitiveObject = func(ctx context.Context) (out []Primitive, e error) {
    16  		return []Primitive{2, 4}, nil
    17  	}
    18  
    19  	resolvers.PrimitiveResolver.Value = func(ctx context.Context, obj *Primitive) (i int, e error) {
    20  		return int(*obj), nil
    21  	}
    22  
    23  	c := client.New(handler.NewDefaultServer(NewExecutableSchema(Config{Resolvers: resolvers})))
    24  
    25  	t.Run("can fetch value", func(t *testing.T) {
    26  		var resp struct {
    27  			PrimitiveObject []struct {
    28  				Value   int
    29  				Squared int
    30  			}
    31  		}
    32  		c.MustPost(`query { primitiveObject { value, squared } }`, &resp)
    33  
    34  		assert.Equal(t, 2, resp.PrimitiveObject[0].Value)
    35  		assert.Equal(t, 4, resp.PrimitiveObject[0].Squared)
    36  		assert.Equal(t, 4, resp.PrimitiveObject[1].Value)
    37  		assert.Equal(t, 16, resp.PrimitiveObject[1].Squared)
    38  	})
    39  }
    40  
    41  func TestPrimitiveStringObjects(t *testing.T) {
    42  	resolvers := &Stub{}
    43  	resolvers.QueryResolver.PrimitiveStringObject = func(ctx context.Context) (out []PrimitiveString, e error) {
    44  		return []PrimitiveString{"hello", "world"}, nil
    45  	}
    46  
    47  	resolvers.PrimitiveStringResolver.Value = func(ctx context.Context, obj *PrimitiveString) (i string, e error) {
    48  		return string(*obj), nil
    49  	}
    50  
    51  	resolvers.PrimitiveStringResolver.Len = func(ctx context.Context, obj *PrimitiveString) (i int, e error) {
    52  		return len(string(*obj)), nil
    53  	}
    54  
    55  	c := client.New(handler.NewDefaultServer(NewExecutableSchema(Config{Resolvers: resolvers})))
    56  
    57  	t.Run("can fetch value", func(t *testing.T) {
    58  		var resp struct {
    59  			PrimitiveStringObject []struct {
    60  				Value   string
    61  				Doubled string
    62  				Len     int
    63  			}
    64  		}
    65  		c.MustPost(`query { primitiveStringObject { value, doubled, len } }`, &resp)
    66  
    67  		assert.Equal(t, "hello", resp.PrimitiveStringObject[0].Value)
    68  		assert.Equal(t, "hellohello", resp.PrimitiveStringObject[0].Doubled)
    69  		assert.Equal(t, 5, resp.PrimitiveStringObject[0].Len)
    70  		assert.Equal(t, "world", resp.PrimitiveStringObject[1].Value)
    71  		assert.Equal(t, "worldworld", resp.PrimitiveStringObject[1].Doubled)
    72  		assert.Equal(t, 5, resp.PrimitiveStringObject[1].Len)
    73  	})
    74  }
    75  

View as plain text