test(server): add unit tests for args parsing and TLS config

This commit is contained in:
2026-02-13 22:57:34 +02:00
parent 439eaa46c0
commit 48c8911962
3 changed files with 62 additions and 0 deletions

View File

@@ -16,6 +16,7 @@ tokio.workspace = true
tracing-subscriber.workspace = true
tracing.workspace = true
uuid.workspace = true
claims.workspace = true
[lints]
workspace = true

View File

@@ -183,3 +183,63 @@ async fn main() -> miette::Result<()> {
Ok(run_server(args, tls_config).await?)
}
#[cfg(test)]
mod tests {
use super::*;
use claims::assert_ok;
use common::cert::CaCertificate;
#[test]
fn default_args() {
let args = Args::parse_from(["server"]);
assert_eq!(args.mode, KeyExchangeMode::X25519);
assert_eq!(args.listen.to_string(), "127.0.0.1:4433");
}
#[test]
fn custom_args() {
let args = Args::parse_from([
"server",
"--mode",
"x25519mlkem768",
"--listen",
"0.0.0.0:8080",
]);
assert_eq!(args.mode, KeyExchangeMode::X25519Mlkem768);
assert_eq!(args.listen.to_string(), "0.0.0.0:8080");
}
#[test]
fn tls_config_x25519() {
let ca = assert_ok!(CaCertificate::generate(), "generate CA");
let server_cert = assert_ok!(ca.sign_server_cert("localhost"), "sign cert");
let config = assert_ok!(
build_tls_config(KeyExchangeMode::X25519, &server_cert),
"build config"
);
assert!(Arc::strong_count(&config) >= 1);
}
#[test]
fn tls_config_mlkem() {
let ca = assert_ok!(CaCertificate::generate(), "generate CA");
let server_cert = assert_ok!(ca.sign_server_cert("localhost"), "sign cert");
let config = assert_ok!(
build_tls_config(KeyExchangeMode::X25519Mlkem768, &server_cert),
"build config"
);
assert!(Arc::strong_count(&config) >= 1);
}
#[test]
fn tls_config_certificates() {
let ca = assert_ok!(CaCertificate::generate(), "generate CA");
let server_cert = assert_ok!(ca.sign_server_cert("localhost"), "sign cert");
let config = assert_ok!(
build_tls_config(KeyExchangeMode::X25519, &server_cert),
"build config"
);
assert!(Arc::strong_count(&config) >= 1);
}
}