11package graphql.parser
22
3-
43import graphql.language.Argument
54import graphql.language.ArrayValue
65import graphql.language.AstComparator
@@ -46,8 +45,6 @@ import spock.lang.Issue
4645import spock.lang.Specification
4746import spock.lang.Unroll
4847
49- import static graphql.parser.ParserEnvironment.*
50-
5148class ParserTest extends Specification {
5249
5350 def " parse anonymous simple query" () {
@@ -384,7 +381,7 @@ class ParserTest extends Specification {
384381 .build()
385382
386383 when :
387- def parserEnvironment = newParserEnvironment(). document(input). parserOptions(parserOptionsWithoutCaptureLineComments). build()
384+ def parserEnvironment = ParserEnvironment . newParserEnvironment(). document(input). parserOptions(parserOptionsWithoutCaptureLineComments). build()
388385 def document = new Parser (). parseDocument(parserEnvironment)
389386 Field helloField = (document. definitions[0 ] as OperationDefinition ). selectionSet. selections[0 ] as Field
390387
@@ -753,7 +750,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
753750 when :
754751 def captureIgnoredCharsTRUE = ParserOptions . newParserOptions(). captureIgnoredChars(true ). build()
755752
756- def parserEnvironment = newParserEnvironment(). document(input). parserOptions(captureIgnoredCharsTRUE). build()
753+ def parserEnvironment = ParserEnvironment . newParserEnvironment(). document(input). parserOptions(captureIgnoredCharsTRUE). build()
757754
758755 Document document = new Parser (). parseDocument(parserEnvironment)
759756 def field = (document. definitions[0 ] as OperationDefinition ). selectionSet. selections[0 ]
@@ -851,7 +848,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
851848 }
852849 '''
853850 when :
854- def parserEnvironment = newParserEnvironment(). document(input). build()
851+ def parserEnvironment = ParserEnvironment . newParserEnvironment(). document(input). build()
855852
856853 Document document = Parser . parse(parserEnvironment)
857854 OperationDefinition operationDefinition = (document. definitions[0 ] as OperationDefinition )
@@ -964,6 +961,22 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
964961 ' 1.2e3e' | _
965962 }
966963
964+ @Unroll
965+ def ' parse ast field definition #valueLiteral' () {
966+ expect :
967+ def fieldDefinition = Parser . parseFieldDefinition(valueLiteral)
968+ AstPrinter . printAstCompact(fieldDefinition) == valueLiteral
969+
970+ where :
971+ valueLiteral | _
972+ ' foo: Foo' | _
973+ ' foo(a:String): Foo' | _
974+ ' foo(a:String!,b:Int!): Foo' | _
975+ ' foo(a:String! ="defaultValue",b:Int!): Foo' | _
976+ ' foo(a:String!,b:Int!): Foo @directive(someValue:String)' | _
977+ }
978+
979+
967980 @Unroll
968981 def ' parse ast literals #valueLiteral' () {
969982 expect :
@@ -1026,7 +1039,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
10261039 def captureIgnoredCharsTRUE = ParserOptions . newParserOptions(). captureIgnoredChars(true ). build()
10271040
10281041 when : " explicitly off"
1029- def parserEnvironment = newParserEnvironment(). document(s). parserOptions(captureIgnoredCharsFALSE). build()
1042+ def parserEnvironment = ParserEnvironment . newParserEnvironment(). document(s). parserOptions(captureIgnoredCharsFALSE). build()
10301043 def doc = new Parser (). parseDocument(parserEnvironment)
10311044 def type = doc. getDefinitionsOfType(ObjectTypeDefinition )[0 ]
10321045 then :
@@ -1042,7 +1055,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
10421055
10431056 when : " explicitly on"
10441057
1045- parserEnvironment = newParserEnvironment(). document(s). parserOptions(captureIgnoredCharsTRUE). build()
1058+ parserEnvironment = ParserEnvironment . newParserEnvironment(). document(s). parserOptions(captureIgnoredCharsTRUE). build()
10461059 doc = new Parser (). parseDocument(parserEnvironment)
10471060 type = doc. getDefinitionsOfType(ObjectTypeDefinition )[0 ]
10481061
@@ -1143,7 +1156,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
11431156
11441157 when :
11451158 options = ParserOptions . newParserOptions(). captureSourceLocation(false ). build()
1146- def parserEnvironment = newParserEnvironment(). document(" { f }" ). parserOptions(options). build()
1159+ def parserEnvironment = ParserEnvironment . newParserEnvironment(). document(" { f }" ). parserOptions(options). build()
11471160 document = new Parser (). parseDocument(parserEnvironment)
11481161
11491162 then :
@@ -1154,7 +1167,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
11541167
11551168 def " escape characters correctly printed when printing AST" () {
11561169 given :
1157- def env = newParserEnvironment()
1170+ def env = ParserEnvironment . newParserEnvironment()
11581171 .document(src)
11591172 .parserOptions(
11601173 ParserOptions . newParserOptions()
@@ -1201,7 +1214,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
12011214
12021215 when : // Enable redacted parser error messages
12031216 def redactParserErrorMessages = ParserOptions . newParserOptions(). redactTokenParserErrorMessages(true ). build()
1204- def parserEnvironment = newParserEnvironment(). document(input). parserOptions(redactParserErrorMessages). build()
1217+ def parserEnvironment = ParserEnvironment . newParserEnvironment(). document(input). parserOptions(redactParserErrorMessages). build()
12051218 new Parser (). parseDocument(parserEnvironment)
12061219
12071220 then :
@@ -1225,7 +1238,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
12251238
12261239 when : // Enable redacted parser error messages
12271240 def redactParserErrorMessages = ParserOptions . newParserOptions(). redactTokenParserErrorMessages(true ). build()
1228- def parserEnvironment = newParserEnvironment(). document(input). parserOptions(redactParserErrorMessages). build()
1241+ def parserEnvironment = ParserEnvironment . newParserEnvironment(). document(input). parserOptions(redactParserErrorMessages). build()
12291242 new Parser (). parseDocument(parserEnvironment)
12301243
12311244 then :
@@ -1247,7 +1260,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
12471260
12481261 when : // Enable redacted parser error messages
12491262 def redactParserErrorMessages = ParserOptions . newParserOptions(). redactTokenParserErrorMessages(true ). build()
1250- def parserEnvironment = newParserEnvironment(). document(input). parserOptions(redactParserErrorMessages). build()
1263+ def parserEnvironment = ParserEnvironment . newParserEnvironment(). document(input). parserOptions(redactParserErrorMessages). build()
12511264 new Parser (). parseDocument(parserEnvironment)
12521265
12531266 then :
0 commit comments