use id_effect::build_env;
use id_effect::run_async;
use id_effect_platform::http::reqwest::{provide_reqwest_client, text};
use reqwest::{Client, Error};
use wiremock::matchers::{method, path};
use wiremock::{Mock, MockServer, ResponseTemplate};
#[tokio::main]
async fn main() {
let server = MockServer::start().await;
Mock::given(method("GET"))
.and(path("/ping"))
.respond_with(ResponseTemplate::new(200).set_body_string("pong"))
.mount(&server)
.await;
let url = format!("{}/ping", server.uri());
let env = build_env([provide_reqwest_client(Client::new())]).expect("env");
let body = run_async(text::<String, Error, _, _>(move |c| c.get(url)), env)
.await
.unwrap();
assert_eq!(body, "pong");
println!("010_wiremock_get_text ok");
}