use id_effect::run_async;
use id_effect::{build_env, provide};
use id_effect_platform::http::reqwest::{ReqwestClientLive, text};
use reqwest::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("/layer"))
.respond_with(ResponseTemplate::new(200).set_body_string("layer-ok"))
.mount(&server)
.await;
let url = format!("{}/layer", server.uri());
let env = build_env([provide!(ReqwestClientLive)]).expect("env");
let body = run_async(text::<String, Error, _, _>(move |c| c.get(url)), env)
.await
.unwrap();
assert_eq!(body, "layer-ok");
println!("030_layer_default_env ok");
}