use std::env;
use crate::error::ActionsError;
pub fn get_input(name: &str) -> Result<String, ActionsError> {
let mut clean_input = str::replace(name, ' ', "_");
clean_input.insert_str(0, "INPUT_");
let value = env::var(clean_input.to_uppercase());
match value {
Ok(input) => Ok(input),
Err(_) => Err(ActionsError::InputNotFound(name.to_string())),
}
}
#[cfg(test)]
mod test {
use crate::core::get_input;
use std::env;
#[test]
fn returns_input_when_env_is_set() {
env::set_var("INPUT_EXAMPLE", "test");
let input = get_input("example");
assert_eq!(input.unwrap(), "test")
}
#[test]
fn returns_error_when_env_is_not_set() {
let input = get_input("test");
assert!(input.is_err())
}
}