#![allow(deprecated)]
use std::process::Command;
use assert_cmd::prelude::*;
use test_kms_server::{TestClientOptions, start_test_server, test_config_path};
const PROXY_URL: &str = "http://localhost:8888";
const PROXY_USER: &str = "myuser";
const PROXY_PASSWORD: &str = "mypwd";
#[ignore = "requires a Squid proxy on localhost:8888 (myuser/mypwd) and KMS_URL set to a non-loopback address"]
#[tokio::test]
pub(crate) async fn test_server_version_using_forward_proxy() {
let ctx = start_test_server(
&test_config_path("auth_plain.toml"),
TestClientOptions::default(),
)
.await
.expect("Failed to start test KMS server");
let kms_url = match std::env::var("KMS_URL") {
Ok(url) => {
let host = url
.trim_start_matches("http://")
.trim_start_matches("https://")
.split(':')
.next()
.unwrap_or("127.0.0.1");
format!("http://{}:{}", host, ctx.server_port)
}
Err(_) => format!("http://127.0.0.1:{}", ctx.server_port),
};
Command::cargo_bin("ckms")
.expect("ckms binary not found")
.env("KMS_DEFAULT_URL", &kms_url)
.env("CLI_PROXY_URL", PROXY_URL)
.env("CLI_PROXY_BASIC_AUTH_USERNAME", PROXY_USER)
.env("CLI_PROXY_BASIC_AUTH_PASSWORD", PROXY_PASSWORD)
.arg("server")
.arg("version")
.assert()
.success();
}