github.com/99designs/gqlgen@v0.17.45/graphql/jsonw_test.go (about) 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 }