fregate 0.17.1

Framework for services creation
Documentation
#[cfg(feature = "tls")]
mod app_config_tls {
    use fregate::{AppConfig, Application, Empty};
    use std::time::Duration;
    use tokio::time::timeout;

    const TLS_KEY_FULL_PATH: &str = concat!(
        env!("CARGO_MANIFEST_DIR"),
        "/examples/examples_resources/certs/tls.key"
    );
    const TLS_CERTIFICATE_FULL_PATH: &str = concat!(
        env!("CARGO_MANIFEST_DIR"),
        "/examples/examples_resources/certs/tls.cert"
    );

    #[tokio::test]
    async fn tls_paths() {
        let config = AppConfig::<Empty>::default();

        assert!(config.tls.key_path.is_none());
        assert!(config.tls.cert_path.is_none());
        assert!(Application::new(config).serve_tls().await.is_err());

        std::env::set_var("TEST_SERVER_TLS_KEY_PATH", TLS_KEY_FULL_PATH);
        let config = AppConfig::<Empty>::builder()
            .add_default()
            .add_env_prefixed("TEST")
            .build()
            .unwrap();

        assert!(config.tls.key_path.is_some());
        assert!(config.tls.cert_path.is_none());
        assert!(Application::new(config).serve_tls().await.is_err());

        std::env::set_var("TEST_SERVER_TLS_CERT_PATH", TLS_CERTIFICATE_FULL_PATH);
        let config = AppConfig::<Empty>::builder()
            .add_default()
            .add_env_prefixed("TEST")
            .build()
            .unwrap();

        assert!(config.tls.key_path.is_some());
        assert!(config.tls.cert_path.is_some());
        assert!(
            timeout(Duration::from_secs(2), Application::new(config).serve_tls(),)
                .await
                .is_err()
        );
    }
}