#[cfg(test)]
mod tests {
use assert_cmd::prelude::*;
use std::process::Command;
#[test]
fn test_run_with_hsh_test_mode() {
let output = Command::cargo_bin("hsh")
.unwrap()
.env("HSH_TEST_MODE", "1")
.output()
.expect("Failed to execute command");
assert!(!output.status.success());
let stderr = String::from_utf8(output.stderr).unwrap();
assert!(stderr.contains("Error running hsh: Simulated error"));
}
#[test]
fn test_run_without_hsh_test_mode() {
let output = Command::cargo_bin("hsh")
.unwrap()
.output()
.expect("Failed to execute command");
assert!(output.status.success());
let stdout = String::from_utf8(output.stdout).unwrap();
assert!(stdout.contains("Welcome to `HSH` 👋!"));
assert!(stdout.contains("Quantum-Resistant Cryptographic Hash Library for Password Encryption and Verification."));
}
fn run_test_scenario() -> Result<(), Box<dyn std::error::Error>> {
Err("Test error".into())
}
#[test]
fn test_main() {
let result = run_test_scenario();
assert!(result.is_err());
let output = Command::cargo_bin("hsh")
.unwrap()
.env("HSH_TEST_MODE", "1")
.output()
.expect("Failed to execute command");
assert!(!output.status.success());
let stderr = String::from_utf8(output.stderr).unwrap();
assert!(stderr.contains("Error running hsh: Simulated error"));
}
}