mod common;
use camber::{RuntimeError, runtime};
use std::path::Path;
#[test]
fn runtime_run_propagates_tls_error_instead_of_exiting() {
let result = runtime::builder()
.tls_cert(Path::new("/nonexistent/cert.pem"))
.tls_key(Path::new("/nonexistent/key.pem"))
.run(|| {});
assert!(result.is_err(), "expected TLS error, got Ok");
assert!(
matches!(&result.unwrap_err(), RuntimeError::Tls(_)),
"expected RuntimeError::Tls"
);
}
#[test]
fn runtime_run_returns_result() {
let result = runtime::builder().run(|| 42);
assert_eq!(result.unwrap(), 42);
let result = runtime::builder().run(|| Err::<i32, _>(RuntimeError::Config("bad".into())));
let inner = result.unwrap();
assert!(inner.is_err(), "expected inner Err");
}
#[test]
fn runtime_run_free_fn_returns_result() {
let result = runtime::run(|| 42);
assert_eq!(result.unwrap(), 42);
}