github.com/99designs/gqlgen@v0.17.45/codegen/testserver/singlefile/slices_test.go (about) 1 package singlefile 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 TestSlices(t *testing.T) { 14 resolvers := &Stub{} 15 16 c := client.New(handler.NewDefaultServer(NewExecutableSchema(Config{Resolvers: resolvers}))) 17 18 t.Run("nulls vs empty slices", func(t *testing.T) { 19 resolvers.QueryResolver.Slices = func(ctx context.Context) (slices *Slices, e error) { 20 return &Slices{}, nil 21 } 22 23 var resp struct { 24 Slices Slices 25 } 26 c.MustPost(`query { slices { test1, test2, test3, test4 }}`, &resp) 27 require.Nil(t, resp.Slices.Test1) 28 require.Nil(t, resp.Slices.Test2) 29 require.NotNil(t, resp.Slices.Test3) 30 require.NotNil(t, resp.Slices.Test4) 31 }) 32 33 t.Run("custom scalars to slices work", func(t *testing.T) { 34 resolvers.QueryResolver.ScalarSlice = func(ctx context.Context) ([]byte, error) { 35 return []byte("testing"), nil 36 } 37 38 var resp struct { 39 ScalarSlice string 40 } 41 c.MustPost(`query { scalarSlice }`, &resp) 42 require.Equal(t, "testing", resp.ScalarSlice) 43 }) 44 }