github.com/99designs/gqlgen@v0.17.45/codegen/testserver/singlefile/primitive_objects_test.go (about) 1 package singlefile 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 }