test(app): add tests for app module

This commit is contained in:
Orhun Parmaksız 2021-12-19 22:45:49 +03:00
parent 13faab0d91
commit a2bba17e9a
No known key found for this signature in database
GPG key ID: F83424824B3E4B90

View file

@ -227,3 +227,45 @@ impl<'a, Output: Write> App<'a, Output> {
Ok(())
}
}
#[cfg(test)]
mod tests {
use super::*;
use systeroid_core::config::Config;
#[test]
fn test_app() -> Result<()> {
let mut output = Vec::new();
let mut sysctl = Sysctl::init(Config {
no_pager: true,
..Config::default()
})?;
let mut app = App::new(&mut sysctl, &mut output, false)?;
app.display_parameters(Regex::new("kernel|vm").ok(), false)?;
let result = String::from_utf8_lossy(&app.output);
assert!(result.contains("vm.zone_reclaim_mode ="));
assert!(result.contains("kernel.version ="));
app.output.clear();
app.tree_output = true;
app.display_parameters(None, true)?;
assert!(String::from_utf8_lossy(&app.output).contains("─ osrelease ="));
app.output.clear();
app.update_documentation(None)?;
app.display_documentation("kernel.acct")?;
assert!(String::from_utf8_lossy(&app.output).contains("highwater lowwater frequency"));
app.output.clear();
let param_name = String::from("kernel.version");
app.tree_output = false;
app.process_parameter(param_name.clone(), true, false)?;
let result = String::from_utf8_lossy(&app.output);
assert_eq!(1, result.lines().count());
assert!(result.contains(&param_name));
app.output.clear();
Ok(())
}
}