Start adding some tests
parent
41213f7272
commit
5d14155ba3
46
src/lib.rs
46
src/lib.rs
|
@ -1,5 +1,10 @@
|
|||
pub mod http_serde;
|
||||
|
||||
// It's easier if the server can stream its response body
|
||||
// back to the relay un-changed inside its request body
|
||||
// So we wrap the server's actual response head
|
||||
// (status code, headers, etc.) in this one header field.
|
||||
|
||||
pub const PTTH_MAGIC_HEADER: &str = "X-PTTH-2LJYXWC4";
|
||||
|
||||
// Basically binaries, but in the lib we can do experimental
|
||||
|
@ -7,3 +12,44 @@ pub const PTTH_MAGIC_HEADER: &str = "X-PTTH-2LJYXWC4";
|
|||
|
||||
pub mod relay;
|
||||
pub mod server;
|
||||
|
||||
#[cfg (test)]
|
||||
mod tests {
|
||||
use std::{
|
||||
error::Error,
|
||||
time::Duration,
|
||||
};
|
||||
|
||||
use tokio::{
|
||||
prelude::*,
|
||||
runtime::Runtime,
|
||||
spawn,
|
||||
time::delay_for,
|
||||
};
|
||||
|
||||
use super::{
|
||||
relay,
|
||||
server,
|
||||
};
|
||||
|
||||
#[test]
|
||||
fn end_to_end () {
|
||||
use reqwest::Client;
|
||||
|
||||
let mut rt = Runtime::new ().unwrap ();
|
||||
|
||||
// Spawn the root task
|
||||
rt.block_on (async {
|
||||
spawn (async {
|
||||
relay::main ().await.unwrap ();
|
||||
});
|
||||
|
||||
let client = Client::new ();
|
||||
|
||||
let resp = client.get ("http://127.0.0.1:4000/relay_up_check")
|
||||
.send ().await.unwrap ().bytes ().await.unwrap ();
|
||||
|
||||
assert_eq! (resp, "Relay is up\n");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -241,6 +241,9 @@ async fn handle_all (req: Request <Body>, state: Arc <ServerState>)
|
|||
Ok (status_reply (StatusCode::BAD_REQUEST, "Bad URI format"))
|
||||
}
|
||||
}
|
||||
else if path == "/relay_up_check" {
|
||||
Ok (status_reply (StatusCode::OK, "Relay is up\n"))
|
||||
}
|
||||
else {
|
||||
Ok (status_reply (StatusCode::OK, "Hi\n"))
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue