github.com/99designs/gqlgen@v0.17.45/codegen/testserver/singlefile/generated_test.go (about) 1 //go:generate rm -f resolver.go 2 //go:generate go run ../../../testdata/gqlgen.go -config gqlgen.yml -stub stub.go 3 4 package singlefile 5 6 import ( 7 "context" 8 "reflect" 9 "testing" 10 11 "github.com/stretchr/testify/require" 12 13 "github.com/99designs/gqlgen/client" 14 "github.com/99designs/gqlgen/graphql/handler" 15 ) 16 17 func TestForcedResolverFieldIsPointer(t *testing.T) { 18 field, ok := reflect.TypeOf((*ForcedResolverResolver)(nil)).Elem().MethodByName("Field") 19 require.True(t, ok) 20 require.Equal(t, "*singlefile.Circle", field.Type.Out(0).String()) 21 } 22 23 func TestEnums(t *testing.T) { 24 t.Run("list of enums", func(t *testing.T) { 25 require.Equal(t, StatusOk, AllStatus[0]) 26 require.Equal(t, StatusError, AllStatus[1]) 27 }) 28 29 t.Run("invalid enum values", func(t *testing.T) { 30 require.Equal(t, StatusOk, AllStatus[0]) 31 require.Equal(t, StatusError, AllStatus[1]) 32 }) 33 } 34 35 func TestUnionFragments(t *testing.T) { 36 resolvers := &Stub{} 37 resolvers.QueryResolver.ShapeUnion = func(ctx context.Context) (ShapeUnion, error) { 38 return &Circle{Radius: 32}, nil 39 } 40 41 srv := handler.NewDefaultServer(NewExecutableSchema(Config{Resolvers: resolvers})) 42 c := client.New(srv) 43 44 t.Run("inline fragment on union", func(t *testing.T) { 45 var resp struct { 46 ShapeUnion struct { 47 Radius float64 48 } 49 } 50 c.MustPost(`query { 51 shapeUnion { 52 ... on Circle { 53 radius 54 } 55 } 56 } 57 `, &resp) 58 require.NotEmpty(t, resp.ShapeUnion.Radius) 59 }) 60 61 t.Run("named fragment", func(t *testing.T) { 62 var resp struct { 63 ShapeUnion struct { 64 Radius float64 65 } 66 } 67 c.MustPost(`query { 68 shapeUnion { 69 ...C 70 } 71 } 72 73 fragment C on ShapeUnion { 74 ... on Circle { 75 radius 76 } 77 } 78 `, &resp) 79 require.NotEmpty(t, resp.ShapeUnion.Radius) 80 }) 81 }