#![allow(deprecated)]
use std::process::Command;
use assert_cmd::prelude::*;
use test_kms_server::{AuthenticationOptions, MainDBConfig, start_test_server_with_options};
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_with_options(
MainDBConfig {
database_type: Some("sqlite".to_owned()),
clear_database: true,
..MainDBConfig::default()
},
9998,
AuthenticationOptions::new(),
None,
None,
)
.await
.expect("Failed to start test KMS server");
let kms_url = std::env::var("KMS_URL")
.unwrap_or_else(|_| 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();
}