github.com/operandinc/gqlgen@v0.16.1/codegen/testserver/followschema/slices_test.go (about) 1 package followschema 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/operandinc/gqlgen/client" 8 "github.com/operandinc/gqlgen/graphql/handler" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestSlices(t *testing.T) { 13 resolvers := &Stub{} 14 15 c := client.New(handler.NewDefaultServer(NewExecutableSchema(Config{Resolvers: resolvers}))) 16 17 t.Run("nulls vs empty slices", func(t *testing.T) { 18 resolvers.QueryResolver.Slices = func(ctx context.Context) (slices *Slices, e error) { 19 return &Slices{}, nil 20 } 21 22 var resp struct { 23 Slices Slices 24 } 25 c.MustPost(`query { slices { test1, test2, test3, test4 }}`, &resp) 26 require.Nil(t, resp.Slices.Test1) 27 require.Nil(t, resp.Slices.Test2) 28 require.NotNil(t, resp.Slices.Test3) 29 require.NotNil(t, resp.Slices.Test4) 30 }) 31 32 t.Run("custom scalars to slices work", func(t *testing.T) { 33 resolvers.QueryResolver.ScalarSlice = func(ctx context.Context) ([]byte, error) { 34 return []byte("testing"), nil 35 } 36 37 var resp struct { 38 ScalarSlice string 39 } 40 c.MustPost(`query { scalarSlice }`, &resp) 41 require.Equal(t, "testing", resp.ScalarSlice) 42 }) 43 }