#[cfg(test)]
mod tests {
use dtt::run;
use serial_test::serial;
#[test]
#[serial]
fn test_run_success() {
std::env::set_var("DTT_TEST_MODE", "0");
let result = run();
assert!(result.is_ok());
}
#[test]
#[serial]
fn test_run_test_mode_error() {
std::env::set_var("DTT_TEST_MODE", "1");
let result = run();
assert!(
result.is_err(),
"Expected `run` to return an error in test mode"
);
if let Err(err) = result {
assert_eq!(err.to_string(), "Simulated error");
}
std::env::remove_var("DTT_TEST_MODE");
}
#[test]
fn test_datetime_module() {
use dtt::datetime::DateTime;
let dt = DateTime::new();
assert!(
dt.to_string().contains('T'),
"Expected the string representation to contain 'T'"
);
}
#[test]
fn test_error_module() {
use dtt::error::DateTimeError;
let error = DateTimeError::InvalidFormat;
assert_eq!(error.to_string(), "Invalid date format");
}
#[test]
#[serial]
fn test_env_var_handling() {
std::env::set_var("DTT_TEST_MODE", "0");
let result = run();
assert!(result.is_ok());
}
#[test]
fn test_library_metadata() {
let crate_name = env!("CARGO_PKG_NAME");
assert_eq!(crate_name, "dtt");
let version = env!("CARGO_PKG_VERSION");
assert_eq!(version, "0.0.10");
let homepage = env!("CARGO_PKG_HOMEPAGE");
assert_eq!(homepage, "https://dttlib.com/");
}
#[test]
fn test_license_information() {
let license = env!("CARGO_PKG_LICENSE");
assert_eq!(license, "MIT OR Apache-2.0");
}
}