mod utils;
use surf;
use utils::{Error, ProbyProcess};
#[actix_rt::test]
async fn connectable_service() -> Result<(), Error> {
let mut dh = ProbyProcess::new(Vec::<String>::new())?;
let mut resp_body = surf::get(&dh.selfcheck()).await?;
assert_eq!(resp_body.status(), 200);
assert_eq!(
resp_body.body_string().await?,
format!("{}:{} is connectable", dh.host, dh.port)
);
dh.child.kill()?;
Ok(())
}
#[actix_rt::test]
async fn unconnectable_service() -> Result<(), Error> {
let mut dh = ProbyProcess::new(Vec::<String>::new())?;
let url = format!("{}/{}:{}", dh.url, dh.host, 1);
let mut resp_body = surf::get(&url).await?;
assert_eq!(resp_body.status(), 503);
assert_eq!(
resp_body.body_string().await?,
format!("{}:{} is NOT connectable", dh.host, 1)
);
dh.child.kill()?;
Ok(())
}
#[actix_rt::test]
async fn can_configure_good_status_code() -> Result<(), Error> {
let mut dh = ProbyProcess::new(Vec::<String>::new())?;
let url = format!("{}?good=201", dh.selfcheck());
let mut resp_body = surf::get(url).await?;
assert_eq!(resp_body.status(), 201);
assert_eq!(
resp_body.body_string().await?,
format!("{}:{} is connectable", dh.host, dh.port)
);
dh.child.kill()?;
Ok(())
}
#[actix_rt::test]
async fn can_configure_bad_status_code() -> Result<(), Error> {
let mut dh = ProbyProcess::new(Vec::<String>::new())?;
let url = format!("{}?good=500", dh.selfcheck());
let mut resp_body = surf::get(url).await?;
assert_eq!(resp_body.status(), 500);
assert_eq!(
resp_body.body_string().await?,
format!("{}:{} is connectable", dh.host, dh.port)
);
dh.child.kill()?;
Ok(())
}