use pokedex_api::telemetry::{Telemetry, UpstreamRequestOutcome}; use std::time::Duration; #[test] fn records_http_and_upstream_metrics_in_prometheus_text_format() { let telemetry = Telemetry::new("test-service"); let metrics = telemetry.metrics(); metrics.record_http_request("GET", "/pokemon/{name}", 200, Duration::from_millis(10)); metrics.record_upstream_request( "pokeapi", "pokemon_species", UpstreamRequestOutcome::Success, Duration::from_millis(5), ); let rendered = telemetry .render_prometheus() .expect("metrics should render as text"); assert!(rendered.contains("http_server_requests")); assert!(rendered.contains("upstream_client_requests")); assert!(rendered.contains("service_name=\"test-service\"")); }