github.com/maeglindeveloper/gqlgen@v0.13.1-0.20210413081235-57808b12a0a0/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  }