diff --git a/tests/test.rs b/tests/test.rs index 90e8749..1ccbd75 100644 --- a/tests/test.rs +++ b/tests/test.rs @@ -354,6 +354,22 @@ mod request { Err(err) => Err(err), } } + + pub async fn get_scheduled_messages(app: &axum::Router, id: &uuid::Uuid) -> Result { + let uri = format!( + "{}?id={}", + textsender_api::caller::endpoints::GET_SCHEDULE_MESSAGE, + id + ); + + match super::super::run_post(None, &uri, axum::http::Method::GET, false).await { + Ok(req) => match app.clone().oneshot(req).await { + Ok(response) => Ok(response), + Err(err) => Err(axum::http::Error::from(err)), + }, + Err(err) => Err(err), + } + } } } @@ -624,3 +640,47 @@ async fn test_schedule_message() { let _ = db_mgr::drop_database(&tm_pool, &db_name).await; } + +#[tokio::test] +async fn test_get_scheduled_message() { + let (tm_pool, db_name, pool) = db_mgr::get_database_ready().await; + let app = init::app(pool).await; + + let mut id: Option = None; + + match request::message::scheduling::create_scheduled_message(&app).await { + Ok(response) => { + eprintln!("Response: {response:?}"); + println!("Response: {response:?}"); + let resp = util::get_resp_data::< + textsender_api::caller::message::scheduling::response::ScheduleMessageResponse, + >(response) + .await; + assert_eq!(false, resp.data.is_empty(), "Should not be empty"); + let scheduled_message = &resp.data[0]; + id = Some(scheduled_message.id); + } + Err(err) => { + assert!(false, "Error: {err:?}"); + } + } + + if let Some(parsed_id) = id { + match request::message::scheduling::get_scheduled_messages(&app, &parsed_id).await { + Ok(response) => { + let resp = util::get_resp_data::< + textsender_api::caller::message::scheduling::response::GetScheduledMessageResponse, + >(response) + .await; + assert_eq!(false, resp.data.is_empty(), "Should not be empty"); + } + Err(err) => { + assert!(false, "Error: {err:?}"); + } + } + } else { + assert!(false, "Scheduled Message Id could not be retrieved"); + } + + let _ = db_mgr::drop_database(&tm_pool, &db_name).await; +}