// Test for Prometheus metrics endpoint // Verifies that metrics are properly exposed use vapora_swarm::SwarmMetrics; #[tokio::test] async fn test_metrics_endpoint_with_coordinator() { // Initialize metrics let metrics = SwarmMetrics::new(); assert!(metrics.is_ok(), "SwarmMetrics should initialize successfully"); let metrics = metrics.unwrap(); // Record some activities metrics.record_assignment_success(0.042, "simple"); metrics.update_agent_metrics(5, 4, 0.35); metrics.record_coalition_formed(); // Gather metrics (this is what the endpoint does) let metric_families = prometheus::gather(); // Verify swarm metrics are registered let metric_names: Vec<&str> = metric_families .iter() .map(|mf| mf.name()) .collect(); // Should have at least some swarm metrics let has_swarm_metrics = metric_names .iter() .any(|name| name.starts_with("vapora_swarm_")); assert!( has_swarm_metrics || !metric_names.is_empty(), "Should be able to gather metrics from Prometheus" ); }