Skip to content

Commit 6041e59

Browse files
committed
added variable definition parse test
1 parent c5c44b0 commit 6041e59

File tree

1 file changed

+18
-9
lines changed

1 file changed

+18
-9
lines changed

src/parser.rs

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ make_parser!(
253253

254254
make_parser!(
255255
OperationDefinition(input: char) -> Operation {
256-
OperationTypeParserarser::new()
256+
OperationTypeParser::new()
257257
.and(optional(NameParser::new()))
258258
.and(optional(VariableDefinitions::new()))
259259
.map(|((op_type,name),defns)| {
@@ -264,12 +264,13 @@ make_parser!(
264264

265265
Operation::new(op_type, name, variable_definitions, Vec::new())
266266
})
267+
.skip(many::<Vec<_>,_>(or(WhiteSpace::new(), LineTerminator::new(&true))))
267268
.parse_stream(input)
268269
}
269270
);
270271

271272
make_parser!(
272-
OperationTypeParserarser(input: char) -> OperationType {
273+
OperationTypeParser(input: char) -> OperationType {
273274
string("query").map(|_| OperationType::Query)
274275
.or(string("mutation").map(|_| OperationType::Mutation))
275276
.skip(many::<Vec<_>,_>(or(WhiteSpace::new(), LineTerminator::new(&true))))
@@ -297,18 +298,21 @@ make_parser!(
297298

298299
make_parser!(
299300
VariableDefinitions(input: char) -> Vec<VariableDefinition> {
300-
between(char('('), char(')'), many(VariableDefinitionP::new()))
301+
between(char('('), char(')'), many(VariableDefinitionParser::new()))
301302
.parse_stream(input)
302303
}
303304
);
304305

305306
make_parser!(
306-
VariableDefinitionP(input: char) -> VariableDefinition {
307+
VariableDefinitionParser(input: char) -> VariableDefinition {
307308
VariableParser::new()
309+
.skip(char(':'))
310+
.skip(many::<Vec<_>,_>(or(WhiteSpace::new(), LineTerminator::new(&true))))
308311
.and(TypeParser::new())
309312
.map(|(variable,var_type)| {
310313
VariableDefinition::new(variable, var_type, None)
311314
})
315+
.skip(many::<Vec<_>,_>(or(WhiteSpace::new(), LineTerminator::new(&true))))
312316
.parse_stream(input)
313317
}
314318
);
@@ -343,8 +347,8 @@ make_parser!(
343347
make_parser!(
344348
Alias(input: char) -> Name {
345349
NameParser::new()
346-
.skip(many::<Vec<_>,_>(or(WhiteSpace::new(), LineTerminator::new(&true))))
347350
.skip(char(':'))
351+
.skip(many::<Vec<_>,_>(or(WhiteSpace::new(), LineTerminator::new(&true))))
348352
.parse_stream(input)
349353
}
350354
);
@@ -367,10 +371,8 @@ mod tests {
367371

368372
#[test]
369373
fn test_parse_operationtype() {
370-
assert_successful_parse!(OperationTypeParserarser, "query", OperationType::Query);
371-
assert_successful_parse!(OperationTypeParserarser,
372-
"mutation",
373-
OperationType::Mutation);
374+
assert_successful_parse!(OperationTypeParser, "query", OperationType::Query);
375+
assert_successful_parse!(OperationTypeParser, "mutation", OperationType::Mutation);
374376
}
375377

376378
#[test]
@@ -424,4 +426,11 @@ mod tests {
424426
"![User]",
425427
Type::NonNull(Box::new(Type::List(Box::new(Type::Named(String::from("User")))))));
426428
}
429+
430+
#[test]
431+
fn test_parse_variabledefinition_nodefaultvalue() {
432+
assert_successful_parse!(VariableDefinitionParser,
433+
"$devicePicSize: Int",
434+
VariableDefinition::new(String::from("devicePicSize"), Type::Named(String::from("Int")), None));
435+
}
427436
}

0 commit comments

Comments
 (0)