Skip to content

Commit 9d8f2a3

Browse files
Add test regarding inline fragments with type condition on interfaces
1 parent 1fcea24 commit 9d8f2a3

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

juniper/src/tests/query_tests.rs

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -731,3 +731,63 @@ async fn test_object_typename() {
731731
))
732732
);
733733
}
734+
735+
#[tokio::test]
736+
async fn interface_inline_fragment_friends() {
737+
let doc = r#"{
738+
human(id: "1002") {
739+
friends {
740+
name
741+
... on Human { homePlanet }
742+
... on Droid { primaryFunction }
743+
}
744+
}
745+
}"#;
746+
let database = Database::new();
747+
let schema = RootNode::new(
748+
Query,
749+
EmptyMutation::<Database>::new(),
750+
EmptySubscription::<Database>::new(),
751+
);
752+
753+
assert_eq!(
754+
crate::execute(doc, None, &schema, &Variables::new(), &database).await,
755+
Ok((
756+
Value::object(
757+
vec![(
758+
"human",
759+
Value::object(
760+
vec![(
761+
"friends",
762+
Value::list(vec![
763+
Value::object(
764+
vec![
765+
("name", Value::scalar("Luke Skywalker")),
766+
("homePlanet", Value::scalar("Tatooine")),
767+
].into_iter().collect(),
768+
),
769+
Value::object(
770+
vec![
771+
("name", Value::scalar("Leia Organa")),
772+
("homePlanet", Value::scalar("Alderaan")),
773+
].into_iter().collect(),
774+
),
775+
Value::object(
776+
vec![
777+
("name", Value::scalar("R2-D2")),
778+
("primaryFunction", Value::scalar("Astromech")),
779+
].into_iter().collect(),
780+
),
781+
]),
782+
)]
783+
.into_iter()
784+
.collect(),
785+
),
786+
)]
787+
.into_iter()
788+
.collect()
789+
),
790+
vec![]
791+
))
792+
);
793+
}

0 commit comments

Comments
 (0)