feat: Add comprehensive unit tests for CLI and CertificateService, covering command parsing and certificate generation
This commit is contained in:
@@ -61,3 +61,73 @@ pub async fn handle_sub_command(
|
||||
} => Ok(gen_agent_certs(settings, output, agent_id, zip).await?),
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use clap::Parser;
|
||||
|
||||
use super::{Cli, Commands};
|
||||
|
||||
#[test]
|
||||
fn parses_serve_mode() {
|
||||
let parsed = Cli::try_parse_from(["nxmesh-master", "--serve"]);
|
||||
assert!(parsed.is_ok());
|
||||
let parsed = parsed.unwrap_or_else(|_| unreachable!());
|
||||
|
||||
assert!(parsed.serve);
|
||||
assert!(!parsed.generate_ca);
|
||||
assert!(parsed.command.is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parses_generate_ca_flag() {
|
||||
let parsed = Cli::try_parse_from(["nxmesh-master", "--generate-ca", "--serve"]);
|
||||
assert!(parsed.is_ok());
|
||||
let parsed = parsed.unwrap_or_else(|_| unreachable!());
|
||||
|
||||
assert!(parsed.generate_ca);
|
||||
assert!(parsed.serve);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parses_gen_certs_with_default_output() {
|
||||
let parsed = Cli::try_parse_from(["nxmesh-master", "gen-certs"]);
|
||||
assert!(parsed.is_ok());
|
||||
let parsed = parsed.unwrap_or_else(|_| unreachable!());
|
||||
|
||||
match parsed.command {
|
||||
Some(Commands::GenCerts { output }) => {
|
||||
assert_eq!(output, "./certs");
|
||||
}
|
||||
_ => unreachable!(),
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parses_gen_agent_certs_with_custom_values() {
|
||||
let parsed = Cli::try_parse_from([
|
||||
"nxmesh-master",
|
||||
"gen-agent-certs",
|
||||
"--output",
|
||||
"./out",
|
||||
"--agent-id",
|
||||
"agent-123",
|
||||
"--zip",
|
||||
]);
|
||||
assert!(parsed.is_ok());
|
||||
let parsed = parsed.unwrap_or_else(|_| unreachable!());
|
||||
|
||||
match parsed.command {
|
||||
Some(Commands::GenAgentCerts {
|
||||
output,
|
||||
agent_id,
|
||||
zip,
|
||||
}) => {
|
||||
assert_eq!(output, "./out");
|
||||
assert_eq!(agent_id, "agent-123");
|
||||
assert!(zip);
|
||||
}
|
||||
_ => unreachable!(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user