Fix the problem that `EmptyMutation` may cause when used in `MergedObject`. #694

This commit is contained in:
Sunli 2021-11-08 08:44:21 +08:00
parent 70fb209b30
commit ff994dc1ec
3 changed files with 32 additions and 1 deletions

View File

@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased
- Fix the problem that `EmptyMutation` may cause when used in `MergedObject`. [#694](https://github.com/async-graphql/async-graphql/issues/694)
## [2.11.1] 2021-11-07
- Add `chrono::Duration` custom scalar. [#689](https://github.com/async-graphql/async-graphql/pull/689)
- Implement `From<Option<Option<T>>>` for `MaybeUndefined<T>`.
- Add `MaybeUndefined::as_opt_ref`, `MaybeUndefined::as_opt_deref`, `MaybeUndefined::map`, `MaybeUndefined::map_value`, `MaybeUndefined::contains`, `MaybeUndefined::contains_value`, and `MaybeUndefined::transpose` methods.

View File

@ -57,7 +57,7 @@ impl ContainerType for EmptyMutation {
}
async fn resolve_field(&self, _ctx: &Context<'_>) -> ServerResult<Option<Value>> {
unreachable!()
Ok(None)
}
}

View File

@ -401,3 +401,30 @@ pub async fn test_issue_539() {
})
)
}
#[tokio::test]
pub async fn test_issue_694() {
struct Query;
#[Object]
impl Query {
async fn test(&self) -> bool {
true
}
}
#[derive(MergedObject)]
pub struct QueryRoot(Query, EmptyMutation);
let schema = Schema::new(
QueryRoot(Query, EmptyMutation),
EmptyMutation,
EmptySubscription,
);
assert_eq!(
schema.execute("{ test }").await.into_result().unwrap().data,
value!({
"test": true,
})
);
}