use mockforge_grpc::dynamic::{discover_services, DynamicGrpcConfig};
#[tokio::test]
async fn test_http_bridge_creation() {
let proto_dir = std::env::var("CARGO_MANIFEST_DIR").unwrap() + "/proto";
let config = DynamicGrpcConfig {
proto_dir: proto_dir.clone(),
enable_reflection: true,
excluded_services: vec![],
http_bridge: Some(Default::default()),
tls: None,
};
let registry = discover_services(&config).await;
assert!(registry.is_ok(), "Failed to discover services");
let registry = registry.unwrap();
println!("Discovered {} services", registry.service_names().len());
let grpc_config = DynamicGrpcConfig {
proto_dir,
enable_reflection: true,
excluded_services: vec![],
http_bridge: None, tls: None,
};
let registry = discover_services(&grpc_config).await.unwrap();
assert!(
!registry.service_names().is_empty(),
"Should discover at least the greeter service"
);
println!("Test passed: HTTP bridge configuration and service discovery works");
}
#[test]
fn test_bridge_config_defaults() {
use mockforge_grpc::dynamic::http_bridge::HttpBridgeConfig;
let config = HttpBridgeConfig::default();
assert!(config.enabled, "Bridge should be enabled by default");
assert_eq!(config.base_path, "/api", "Default base path should be /api");
assert!(config.enable_cors, "CORS should be enabled by default");
assert!(config.max_request_size > 0, "Max request size should be positive");
assert!(config.timeout_seconds > 0, "Timeout should be positive");
}