...
1 package graphql
2
3 import (
4 "bytes"
5 "testing"
6
7 "github.com/stretchr/testify/require"
8 "github.com/vektah/gqlparser/v2/ast"
9 )
10
11 func TestJsonWriter(t *testing.T) {
12 obj := NewFieldSet([]CollectedField{
13 {Field: &ast.Field{Alias: "test"}},
14 {Field: &ast.Field{Alias: "array"}},
15 {Field: &ast.Field{Alias: "emptyArray"}},
16 {Field: &ast.Field{Alias: "child"}},
17 })
18 obj.Values[0] = MarshalInt(10)
19
20 obj.Values[1] = &Array{
21 MarshalInt(1),
22 MarshalString("2"),
23 MarshalBoolean(true),
24 False,
25 Null,
26 MarshalFloat(1.3),
27 True,
28 }
29
30 obj.Values[2] = &Array{}
31
32 child2 := NewFieldSet([]CollectedField{
33 {Field: &ast.Field{Alias: "child"}},
34 })
35 child2.Values[0] = Null
36
37 child1 := NewFieldSet([]CollectedField{
38 {Field: &ast.Field{Alias: "child"}},
39 })
40 child1.Values[0] = child2
41
42 obj.Values[3] = child1
43
44 b := &bytes.Buffer{}
45 obj.MarshalGQL(b)
46
47 require.Equal(t, `{"test":10,"array":[1,"2",true,false,null,1.3,true],"emptyArray":[],"child":{"child":{"child":null}}}`, b.String())
48 }
49
View as plain text