use async_graphql::*; #[async_std::test] pub async fn test_list_type() { #[InputObject] struct MyInput { value: Vec, } struct Root { value: Vec, } #[Object] impl Root { async fn value_vec(&self) -> Vec { self.value.clone() } async fn value_slice(&self) -> &[i32] { &self.value } async fn value_input_slice(&self, a: Vec) -> Vec { a } async fn test_arg(&self, input: Vec) -> Vec { input } async fn test_input<'a>(&self, input: MyInput) -> Vec { input.value } } let schema = Schema::new( Root { value: vec![1, 2, 3, 4, 5], }, EmptyMutation, EmptySubscription, ); let json_value: serde_json::Value = vec![1, 2, 3, 4, 5].into(); let query = format!( r#"{{ valueVec valueSlice testArg(input: {0}) testInput(input: {{value: {0}}}) valueInputSlice1: valueInputSlice(a: [1, 2, 3]) valueInputSlice2: valueInputSlice(a: 55) }} "#, json_value ); assert_eq!( schema.execute(&query).await.unwrap().data, serde_json::json!({ "valueVec": vec![1, 2, 3, 4, 5], "valueSlice": vec![1, 2, 3, 4, 5], "testArg": vec![1, 2, 3, 4, 5], "testInput": vec![1, 2, 3, 4, 5], "valueInputSlice1": vec![1, 2, 3], "valueInputSlice2": vec![55], }) ); }