#[path = "test_support/lib.rs"]
mod test_support;
use test_support::client::{build_client, wait_for_server};
use test_support::container::{IpfsContainer, NginxContainer};
use test_support::images;
use test_support::rt::run_async;
use ipfs_api_versions::test_current_image;
#[test_current_image]
fn test_basic_auth(image_name: &str, image_tag: &str) {
run_async(run_test(image_name, image_tag));
}
async fn run_test(image_name: &str, image_tag: &str) {
let expected_version = images::extract_version(image_tag);
let container = IpfsContainer::new("test_basic_auth_ipfs", image_name, image_tag)
.await
.unwrap();
{
let api_url = format!("http://{}:5001", container.ip);
let client = build_client(&api_url);
let version = wait_for_server(&client).await.unwrap();
assert_eq!(expected_version, version.version);
}
let nginx = NginxContainer::new("test_basic_auth_nginx", &container.ip)
.await
.unwrap();
println!("Waiting for nginx");
nginx.wait_for().await.unwrap();
println!("Connecting to IPFS through nginx");
{
let api_url = format!("http://{}", nginx.ip);
let client = build_client(&api_url).with_credentials(&nginx.username, &nginx.password);
let version = wait_for_server(&client).await.unwrap();
assert_eq!(expected_version, version.version);
}
println!("Tearing down nginx");
nginx.teardown().await.unwrap();
println!("Tearing down ipfs");
container.teardown().await.unwrap();
}