1
1
package graphql.parser
2
2
3
-
4
3
import graphql.language.Argument
5
4
import graphql.language.ArrayValue
6
5
import graphql.language.AstComparator
@@ -46,8 +45,6 @@ import spock.lang.Issue
46
45
import spock.lang.Specification
47
46
import spock.lang.Unroll
48
47
49
- import static graphql.parser.ParserEnvironment.*
50
-
51
48
class ParserTest extends Specification {
52
49
53
50
def " parse anonymous simple query" () {
@@ -384,7 +381,7 @@ class ParserTest extends Specification {
384
381
.build()
385
382
386
383
when :
387
- def parserEnvironment = newParserEnvironment(). document(input). parserOptions(parserOptionsWithoutCaptureLineComments). build()
384
+ def parserEnvironment = ParserEnvironment . newParserEnvironment(). document(input). parserOptions(parserOptionsWithoutCaptureLineComments). build()
388
385
def document = new Parser (). parseDocument(parserEnvironment)
389
386
Field helloField = (document. definitions[0 ] as OperationDefinition ). selectionSet. selections[0 ] as Field
390
387
@@ -753,7 +750,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
753
750
when :
754
751
def captureIgnoredCharsTRUE = ParserOptions . newParserOptions(). captureIgnoredChars(true ). build()
755
752
756
- def parserEnvironment = newParserEnvironment(). document(input). parserOptions(captureIgnoredCharsTRUE). build()
753
+ def parserEnvironment = ParserEnvironment . newParserEnvironment(). document(input). parserOptions(captureIgnoredCharsTRUE). build()
757
754
758
755
Document document = new Parser (). parseDocument(parserEnvironment)
759
756
def field = (document. definitions[0 ] as OperationDefinition ). selectionSet. selections[0 ]
@@ -851,7 +848,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
851
848
}
852
849
'''
853
850
when :
854
- def parserEnvironment = newParserEnvironment(). document(input). build()
851
+ def parserEnvironment = ParserEnvironment . newParserEnvironment(). document(input). build()
855
852
856
853
Document document = Parser . parse(parserEnvironment)
857
854
OperationDefinition operationDefinition = (document. definitions[0 ] as OperationDefinition )
@@ -964,6 +961,22 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
964
961
' 1.2e3e' | _
965
962
}
966
963
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
+
967
980
@Unroll
968
981
def ' parse ast literals #valueLiteral' () {
969
982
expect :
@@ -1026,7 +1039,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
1026
1039
def captureIgnoredCharsTRUE = ParserOptions . newParserOptions(). captureIgnoredChars(true ). build()
1027
1040
1028
1041
when : " explicitly off"
1029
- def parserEnvironment = newParserEnvironment(). document(s). parserOptions(captureIgnoredCharsFALSE). build()
1042
+ def parserEnvironment = ParserEnvironment . newParserEnvironment(). document(s). parserOptions(captureIgnoredCharsFALSE). build()
1030
1043
def doc = new Parser (). parseDocument(parserEnvironment)
1031
1044
def type = doc. getDefinitionsOfType(ObjectTypeDefinition )[0 ]
1032
1045
then :
@@ -1042,7 +1055,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
1042
1055
1043
1056
when : " explicitly on"
1044
1057
1045
- parserEnvironment = newParserEnvironment(). document(s). parserOptions(captureIgnoredCharsTRUE). build()
1058
+ parserEnvironment = ParserEnvironment . newParserEnvironment(). document(s). parserOptions(captureIgnoredCharsTRUE). build()
1046
1059
doc = new Parser (). parseDocument(parserEnvironment)
1047
1060
type = doc. getDefinitionsOfType(ObjectTypeDefinition )[0 ]
1048
1061
@@ -1143,7 +1156,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
1143
1156
1144
1157
when :
1145
1158
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()
1147
1160
document = new Parser (). parseDocument(parserEnvironment)
1148
1161
1149
1162
then :
@@ -1154,7 +1167,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
1154
1167
1155
1168
def " escape characters correctly printed when printing AST" () {
1156
1169
given :
1157
- def env = newParserEnvironment()
1170
+ def env = ParserEnvironment . newParserEnvironment()
1158
1171
.document(src)
1159
1172
.parserOptions(
1160
1173
ParserOptions . newParserOptions()
@@ -1201,7 +1214,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
1201
1214
1202
1215
when : // Enable redacted parser error messages
1203
1216
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()
1205
1218
new Parser (). parseDocument(parserEnvironment)
1206
1219
1207
1220
then :
@@ -1225,7 +1238,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
1225
1238
1226
1239
when : // Enable redacted parser error messages
1227
1240
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()
1229
1242
new Parser (). parseDocument(parserEnvironment)
1230
1243
1231
1244
then :
@@ -1247,7 +1260,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
1247
1260
1248
1261
when : // Enable redacted parser error messages
1249
1262
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()
1251
1264
new Parser (). parseDocument(parserEnvironment)
1252
1265
1253
1266
then :
0 commit comments