diff --git a/src/dynamic/resolve.rs b/src/dynamic/resolve.rs index cd086062a..8a82d184e 100644 --- a/src/dynamic/resolve.rs +++ b/src/dynamic/resolve.rs @@ -367,7 +367,7 @@ pub(crate) fn resolve<'a>( (TypeRefInner::List(_), Some(_)) => Err(ctx.set_error_path( Error::new("internal: expects an array").into_server_error(ctx.item.pos), )), - (TypeRefInner::List(_), None) => Ok(Some(Value::List(vec![]))), + (TypeRefInner::List(_), None) => Ok(None), } } .boxed() diff --git a/src/dynamic/schema.rs b/src/dynamic/schema.rs index 47b41291b..c6f0a7be5 100644 --- a/src/dynamic/schema.rs +++ b/src/dynamic/schema.rs @@ -749,6 +749,11 @@ mod tests { ]))) }) }, + )) + .field(Field::new( + "values3", + TypeRef::named_nn_list(TypeRef::INT), + |_| FieldFuture::new(async { Ok(None::>) }), )); let schema = Schema::build("Query", None, None) .register(query) @@ -757,7 +762,7 @@ mod tests { assert_eq!( schema - .execute("{ values values2 }") + .execute("{ values values2 values3 }") .await .into_result() .unwrap() @@ -765,6 +770,7 @@ mod tests { value!({ "values": [3, 6, 9], "values2": [3, 6, 9], + "values3": null, }) ); }