use std::str::FromStr;
pub const CONNECTION_STRING_ENV_VAR: &str = "AZURE_COSMOS_CONNECTION_STRING";
#[allow(dead_code)]
pub const DATABASE_NAME_ENV_VAR: &str = "DATABASE_NAME";
#[allow(dead_code)]
pub const ALLOW_INVALID_CERTS_ENV_VAR: &str = "AZURE_COSMOS_ALLOW_INVALID_CERT";
pub const TEST_MODE_ENV_VAR: &str = "AZURE_COSMOS_TEST_MODE";
pub const EMULATOR_CONNECTION_STRING: &str = "AccountEndpoint=https://localhost:8081;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;";
#[derive(PartialEq, Eq, Clone, Copy, Debug, Default)]
pub enum CosmosTestMode {
Required,
Skipped,
#[default]
Allowed,
}
impl FromStr for CosmosTestMode {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s.to_lowercase().as_str() {
"required" => Ok(CosmosTestMode::Required),
"skipped" => Ok(CosmosTestMode::Skipped),
"allowed" => Ok(CosmosTestMode::Allowed),
_ => Err(()),
}
}
}
pub fn get_test_mode() -> CosmosTestMode {
std::env::var(TEST_MODE_ENV_VAR)
.ok()
.and_then(|s| s.parse().ok())
.unwrap_or_default()
}
pub fn is_azure_pipelines() -> bool {
std::env::var("SYSTEM_TEAMPROJECTID").is_ok()
}