Skip to content

Commit 1ebda4b

Browse files
committed
more fragment tests; formatting
1 parent 7568a9e commit 1ebda4b

File tree

2 files changed

+102
-27
lines changed

2 files changed

+102
-27
lines changed

src/ast.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -168,11 +168,7 @@ pub struct Fragment {
168168
}
169169

170170
impl Fragment {
171-
pub fn new(name: Name,
172-
type_condition: Type,
173-
directives: Vec<Directive>,
174-
selection_set: Vec<Selection>)
175-
-> Fragment {
171+
pub fn new(name: Name, type_condition: Type, directives: Vec<Directive>, selection_set: Vec<Selection>) -> Fragment {
176172
Fragment {
177173
name: name,
178174
type_condition: type_condition,

src/parser.rs

Lines changed: 101 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -904,15 +904,12 @@ mod tests {
904904
#[test]
905905
fn test_parse_operation_selectionset() {
906906
// operation with selection set
907-
let result = Operation::new(OperationType::Query,
908-
Some(String::from("likeStory")),
909-
Vec::new(),
910-
Vec::new(),
911-
vec![Selection::Field(Field::new(None,
912-
String::from("id"),
913-
Vec::new(),
914-
Vec::new(),
915-
Vec::new()))]);
907+
let result =
908+
Operation::new(OperationType::Query,
909+
Some(String::from("likeStory")),
910+
Vec::new(),
911+
Vec::new(),
912+
vec![Selection::Field(Field::new(None, String::from("id"), Vec::new(), Vec::new(), Vec::new()))]);
916913
assert_successful_parse!(OperationDefinition, "query likeStory { id }", result);
917914
}
918915

@@ -923,17 +920,15 @@ mod tests {
923920
#[test]
924921
fn test_parse_selectionset_fields() {
925922
// selection set with fields only
926-
let result =
927-
vec![Selection::Field(Field::new(None, String::from("id"), Vec::new(), Vec::new(), Vec::new()))];
923+
let result = vec![Selection::Field(Field::new(None, String::from("id"), Vec::new(), Vec::new(), Vec::new()))];
928924

929925
assert_successful_parse!(SelectionSet, "{ id }", result);
930926
}
931927

932928
#[test]
933929
fn test_parse_selectionset_fragmentspread() {
934930
// selection set with fragment only
935-
let result = vec![Selection::FragmentSpread(FragmentSpread::new(String::from("friendsFragment"),
936-
Vec::new()))];
931+
let result = vec![Selection::FragmentSpread(FragmentSpread::new(String::from("friendsFragment"), Vec::new()))];
937932

938933
assert_successful_parse!(SelectionSet, "{ ...friendsFragment }", result);
939934
}
@@ -1003,15 +998,12 @@ mod tests {
1003998
#[test]
1004999
fn test_parse_field_selectionset() {
10051000
// field with a sub selection set
1006-
let result = Field::new(None,
1007-
String::from("me"),
1008-
Vec::new(),
1009-
Vec::new(),
1010-
vec![Selection::Field(Field::new(None,
1011-
String::from("id"),
1012-
Vec::new(),
1013-
Vec::new(),
1014-
Vec::new()))]);
1001+
let result =
1002+
Field::new(None,
1003+
String::from("me"),
1004+
Vec::new(),
1005+
Vec::new(),
1006+
vec![Selection::Field(Field::new(None, String::from("id"), Vec::new(), Vec::new(), Vec::new()))]);
10151007

10161008
assert_successful_parse!(FieldParser, "me { id }", result);
10171009
}
@@ -1020,6 +1012,14 @@ mod tests {
10201012
// 2.6 Arguments Tests
10211013
// ===========================================================================
10221014

1015+
#[test]
1016+
fn test_parse_arguments() {
1017+
assert_successful_parse!(Arguments,
1018+
"(x:1 y:2)",
1019+
vec![Argument::new(String::from("x"), Value::Int(1)),
1020+
Argument::new(String::from("y"), Value::Int(2))]);
1021+
}
1022+
10231023
#[test]
10241024
fn test_parse_argument() {
10251025
assert_successful_parse!(ArgumentParser,
@@ -1042,6 +1042,85 @@ mod tests {
10421042
// 2.8 Fragments Tests
10431043
// ===========================================================================
10441044

1045+
#[test]
1046+
fn test_parse_fragmentspread() {
1047+
assert_successful_parse!(FragmentSpreadParser,
1048+
"...friendsFragment",
1049+
FragmentSpread::new(String::from("friendsFragment"), Vec::new()));
1050+
}
1051+
1052+
#[test]
1053+
fn test_parse_fragmentspread_directives() {
1054+
assert_successful_parse!(FragmentSpreadParser,
1055+
"...friendsFragment @test",
1056+
FragmentSpread::new(String::from("friendsFragment"),
1057+
vec![Directive::new(String::from("test"), Vec::new())]));
1058+
}
1059+
1060+
#[test]
1061+
fn test_parse_fragmentdefinition() {
1062+
assert_successful_parse!(FragmentDefinition,
1063+
"fragment friendsFragment on User { }",
1064+
Fragment::new(String::from("friendsFragment"),
1065+
Type::Named(String::from("User")),
1066+
Vec::new(),
1067+
Vec::new()));
1068+
}
1069+
1070+
#[test]
1071+
fn test_parse_fragmentdefinition_directives() {
1072+
assert_successful_parse!(FragmentDefinition,
1073+
"fragment friendsFragment on User @test { }",
1074+
Fragment::new(String::from("friendsFragment"),
1075+
Type::Named(String::from("User")),
1076+
vec![Directive::new(String::from("test"), Vec::new())],
1077+
Vec::new()));
1078+
}
1079+
1080+
#[test]
1081+
fn test_parse_fragmentdefinition_selectionset() {
1082+
assert_successful_parse!(FragmentDefinition,
1083+
"fragment friendsFragment on User { friends }",
1084+
Fragment::new(String::from("friendsFragment"),
1085+
Type::Named(String::from("User")),
1086+
Vec::new(),
1087+
vec![Selection::Field(Field::new(None,
1088+
String::from("friends"),
1089+
Vec::new(),
1090+
Vec::new(),
1091+
Vec::new()))]));
1092+
}
1093+
1094+
#[test]
1095+
fn test_parse_typecondition() {
1096+
assert_successful_parse!(TypeCondition, "on User", Type::Named(String::from("User")));
1097+
}
1098+
1099+
#[test]
1100+
fn test_parse_inlinefragment() {
1101+
assert_successful_parse!(InlineFragmentParser,
1102+
"... {}",
1103+
InlineFragment::new(None, Vec::new(), Vec::new()));
1104+
}
1105+
1106+
#[test]
1107+
fn test_parse_inlinefragment_typecondition() {
1108+
assert_successful_parse!(InlineFragmentParser,
1109+
"... on User {}",
1110+
InlineFragment::new(Some(Type::Named(String::from("User"))),
1111+
Vec::new(),
1112+
Vec::new()));
1113+
}
1114+
1115+
#[test]
1116+
fn test_parse_inlinefragment_directives() {
1117+
assert_successful_parse!(InlineFragmentParser,
1118+
"... @test {}",
1119+
InlineFragment::new(None,
1120+
vec![Directive::new(String::from("test"), Vec::new())],
1121+
Vec::new()));
1122+
}
1123+
10451124
// ===========================================================================
10461125
// 2.9 Value Tests
10471126
// ===========================================================================

0 commit comments

Comments
 (0)