...
1 package followschema
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 }
45
View as plain text