use ig_client::utils::config::{get_env_or_default, get_env_or_none};
use std::env;
#[test]
fn test_get_env_or_default_with_existing_var() {
unsafe {
env::set_var("TEST_VAR_STRING", "test_value");
let result: String = get_env_or_default("TEST_VAR_STRING", "default".to_string());
assert_eq!(result, "test_value");
env::remove_var("TEST_VAR_STRING");
}
}
#[test]
fn test_get_env_or_default_with_missing_var() {
unsafe {
env::remove_var("MISSING_VAR");
let result: String = get_env_or_default("MISSING_VAR", "default".to_string());
assert_eq!(result, "default");
}
}
#[test]
fn test_get_env_or_default_with_integer() {
unsafe {
env::set_var("TEST_VAR_INT", "42");
let result: i32 = get_env_or_default("TEST_VAR_INT", 0);
assert_eq!(result, 42);
env::remove_var("TEST_VAR_INT");
}
}
#[test]
fn test_get_env_or_default_with_invalid_parse() {
unsafe {
env::set_var("TEST_VAR_INVALID", "not_a_number");
let result: i32 = get_env_or_default("TEST_VAR_INVALID", 99);
assert_eq!(result, 99); env::remove_var("TEST_VAR_INVALID");
}
}
#[test]
fn test_get_env_or_default_with_bool() {
unsafe {
env::set_var("TEST_VAR_BOOL", "true");
let result: bool = get_env_or_default("TEST_VAR_BOOL", false);
assert!(result);
env::remove_var("TEST_VAR_BOOL");
}
}
#[test]
fn test_get_env_or_none_with_existing_var() {
unsafe {
env::set_var("TEST_VAR_OPTION", "123");
let result: Option<i32> = get_env_or_none("TEST_VAR_OPTION");
assert_eq!(result, Some(123));
env::remove_var("TEST_VAR_OPTION");
}
}
#[test]
fn test_get_env_or_none_with_missing_var() {
unsafe {
env::remove_var("MISSING_VAR_OPTION");
let result: Option<i32> = get_env_or_none("MISSING_VAR_OPTION");
assert_eq!(result, None);
}
}
#[test]
fn test_get_env_or_none_with_invalid_parse() {
unsafe {
env::set_var("TEST_VAR_INVALID_OPTION", "not_a_number");
let result: Option<i32> = get_env_or_none("TEST_VAR_INVALID_OPTION");
assert_eq!(result, None);
env::remove_var("TEST_VAR_INVALID_OPTION");
}
}
#[test]
fn test_get_env_or_none_with_float() {
unsafe {
env::set_var("TEST_VAR_FLOAT", "3.14");
let result: Option<f64> = get_env_or_none("TEST_VAR_FLOAT");
#[allow(clippy::approx_constant)]
{
assert_eq!(result, Some(3.14));
}
env::remove_var("TEST_VAR_FLOAT");
}
}
#[test]
fn test_get_env_or_none_with_string() {
unsafe {
env::set_var("TEST_VAR_STRING_OPTION", "hello");
let result: Option<String> = get_env_or_none("TEST_VAR_STRING_OPTION");
assert_eq!(result, Some("hello".to_string()));
env::remove_var("TEST_VAR_STRING_OPTION");
}
}