68 lines
1.5 KiB
Rust
68 lines
1.5 KiB
Rust
use async_graphql::*;
|
|
|
|
#[async_std::test]
|
|
pub async fn test_default_value_arg() {
|
|
struct Query;
|
|
|
|
#[Object]
|
|
impl Query {
|
|
async fn value(&self, #[arg(default = "100")] input: i32) -> i32 {
|
|
input
|
|
}
|
|
}
|
|
|
|
let query = "{ value }";
|
|
let schema = Schema::new(Query, EmptyMutation, EmptySubscription);
|
|
assert_eq!(
|
|
schema.execute(&query).await.unwrap().data,
|
|
serde_json::json!({
|
|
"value": 100
|
|
})
|
|
);
|
|
|
|
let query = "{ value(input: 88) }";
|
|
let schema = Schema::new(Query, EmptyMutation, EmptySubscription);
|
|
assert_eq!(
|
|
schema.execute(&query).await.unwrap().data,
|
|
serde_json::json!({
|
|
"value": 88
|
|
})
|
|
);
|
|
}
|
|
|
|
#[async_std::test]
|
|
pub async fn test_default_value_inputobject() {
|
|
#[InputObject]
|
|
struct MyInput {
|
|
#[field(default = "100")]
|
|
value: i32,
|
|
}
|
|
|
|
struct Query;
|
|
|
|
#[Object]
|
|
impl Query {
|
|
async fn value(&self, input: MyInput) -> i32 {
|
|
input.value
|
|
}
|
|
}
|
|
|
|
let query = "{ value(input: {}) }";
|
|
let schema = Schema::new(Query, EmptyMutation, EmptySubscription);
|
|
assert_eq!(
|
|
schema.execute(&query).await.unwrap().data,
|
|
serde_json::json!({
|
|
"value": 100
|
|
})
|
|
);
|
|
|
|
let query = "{ value(input: { value: 88 }) }";
|
|
let schema = Schema::new(Query, EmptyMutation, EmptySubscription);
|
|
assert_eq!(
|
|
schema.execute(&query).await.unwrap().data,
|
|
serde_json::json!({
|
|
"value": 88
|
|
})
|
|
);
|
|
}
|