use anyhow::Result;
use crate::config::Config;
pub fn get(args_lang: &str, config_lang: &str) -> Result<String> {
let lang = if !args_lang.is_empty() {
args_lang.to_string()
} else if args_lang.is_empty() && !config_lang.is_empty() {
config_lang.to_string()
} else {
Config::default().language.unwrap()
};
Ok(lang)
}
#[cfg(test)]
mod tests {
use super::*;
use crate::modules::config::Config;
#[test]
fn lang_from_arg() -> Result<()> {
let arg_lang = "pl";
let config = Config {
language: Some("de".to_string()),
..Default::default()
};
assert!(get(arg_lang, config.language.as_deref().unwrap_or_default())?.contains("pl"));
Ok(())
}
#[test]
fn lang_from_cfg() -> Result<()> {
let arg_lang = "";
let config = Config {
language: Some("de".to_string()),
..Default::default()
};
assert!(get(arg_lang, config.language.as_deref().unwrap_or_default())?.contains("de"));
Ok(())
}
}