use graphql_client::GraphQLQuery; #[derive(GraphQLQuery)] #[graphql( query_path = "tests/operation_selection/queries.graphql", schema_path = "tests/operation_selection/schema.graphql", response_derives = "Debug, PartialEq, Eq" )] pub struct Heights; #[derive(GraphQLQuery)] #[graphql( query_path = "tests/operation_selection/queries.graphql", schema_path = "tests/operation_selection/schema.graphql", response_derives = "Debug, PartialEq, Eq" )] pub struct Echo; const HEIGHTS_RESPONSE: &str = r#"{"mountainHeight": 224, "buildingHeight": 12}"#; const ECHO_RESPONSE: &str = r#"{"echo": "tiramisù"}"#; #[test] fn operation_selection_works() { let heights_response_data: heights::ResponseData = serde_json::from_str(HEIGHTS_RESPONSE).unwrap(); let echo_response_data: echo::ResponseData = serde_json::from_str(ECHO_RESPONSE).unwrap(); let _echo_variables = echo::Variables { msg: Some("hi".to_string()), }; let _height_variables = heights::Variables { building_id: "12".to_string(), mountain_name: Some("canigou".to_string()), }; let expected_echo = echo::ResponseData { echo: Some("tiramisù".to_string()), }; let expected_heights = heights::ResponseData { mountain_height: Some(224), building_height: Some(12), }; assert_eq!(expected_echo, echo_response_data); assert_eq!(expected_heights, heights_response_data); } #[test] fn operation_name_is_correct() { let echo_variables = echo::Variables { msg: Some("hi".to_string()), }; let height_variables = heights::Variables { building_id: "12".to_string(), mountain_name: Some("canigou".to_string()), }; assert_eq!(Echo::build_query(echo_variables).operation_name, "Echo"); assert_eq!( Heights::build_query(height_variables).operation_name, "Heights" ); }