Files
alpha-id/tests/ionos_tests.rs
T

26 lines
886 B
Rust

use alpha_id::ionos::IonosClient;
use std::io::Write;
fn mock_server(body: &'static str) -> (String, std::thread::JoinHandle<()>) {
let server = tiny_http::Server::http("127.0.0.1:0").unwrap();
let url = format!("http://{}", server.server_addr());
let h = std::thread::spawn(move || {
if let Ok(req) = server.recv() {
let resp = tiny_http::Response::from_string(body);
req.respond(resp).ok();
}
});
(url, h)
}
#[test]
fn posts_json_and_parses_response() {
let (url, h) = mock_server(r#"{"ok":true}"#);
let mut tf = tempfile::NamedTempFile::new().unwrap();
write!(tf, "test-token-123").unwrap();
let c = IonosClient::new(&url, tf.path().to_str().unwrap()).unwrap();
let v: serde_json::Value = c.post_json("/ping", &serde_json::json!({"x":1})).unwrap();
assert_eq!(v["ok"], true);
h.join().ok();
}