From 03229ddf65f4180a93a0bbc72327983cce1c174a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jord=C3=A3o?= <jordao.rosario01@gmail.com>
Date: Tue, 4 Feb 2020 11:57:13 -0300
Subject: [PATCH] Added a small test for field validation error in the async
 executor

---
 integration_tests/async_await/src/main.rs | 33 ++++++++++++++++++++++-
 1 file changed, 32 insertions(+), 1 deletion(-)

diff --git a/integration_tests/async_await/src/main.rs b/integration_tests/async_await/src/main.rs
index 6e8f16f7..61629133 100644
--- a/integration_tests/async_await/src/main.rs
+++ b/integration_tests/async_await/src/main.rs
@@ -1,4 +1,4 @@
-use juniper::{graphql_value, RootNode, Value};
+use juniper::{graphql_value, RootNode, Value, GraphQLError};
 
 #[derive(juniper::GraphQLEnum)]
 enum UserKind {
@@ -112,4 +112,35 @@ async fn async_simple() {
     );
 }
 
+
+#[tokio::test]
+async fn async_field_validation_error() {
+    let schema = RootNode::new(Query, Mutation);
+    let doc = r#"
+        query {
+            nonExistentField
+            fieldSync
+            fieldAsyncPlain
+            delayed
+            user(id: "user1") {
+                kind
+                name
+                delayed
+            }
+        }
+    "#;
+
+    let vars = Default::default();
+    let result = juniper::execute_async(doc, None, &schema, &vars, &())
+        .await;
+    assert!(result.is_err());
+
+    let error = result.err().unwrap();
+    let is_validation_error = match error {
+        GraphQLError::ValidationError(_) => true,
+        _ => false
+    };
+    assert!(is_validation_error);
+}
+
 fn main() {}