graphql-go / graphql

An implementation of GraphQL for Go / Golang
MIT License
9.86k stars 838 forks source link

printed sdl cannot be parsed when quotation in description #641

Open zzggffxx opened 2 years ago

zzggffxx commented 2 years ago

Steps to reproduce

func TestPrint(t *testing.T) {
    doc := &ast.Document{
        Kind: kinds.Document,
        Loc:  nil,
        Definitions: []ast.Node{
            &ast.ObjectDefinition{
                Kind: kinds.ObjectDefinition,
                Name: &ast.Name{
                    Kind:  kinds.Name,
                    Value: "myObject",
                },
                Description: &ast.StringValue{
                    Kind:  kinds.StringValue,
                    Value: "test \"quoted\"",
                },
            },
        },
    }
    sdl := printer.Print(doc)

    ast, err := parser.Parse(parser.ParseParams{
        Source: sdl,
    })
    assert.Nil(t, err)
    assert.NotNil(t, ast)
}

Expected result

printed string can be successfully parsed

Actual result

meet error: Syntax Error GraphQL (1:20) Unterminated string.

1: """test "quoted"""" ^ 2: type myObject {}