#[test] fn build_info_parser_extracts_expected_labels() { let metrics = r#" # HELP gateway_build_info build info # TYPE gateway_build_info gauge gateway_build_info{service="gateway",version="1.2.3",git_sha="abc"} 1 runner_build_info{service="runner",version="2.0.0",git_sha="def"} 1 unrelated_metric 5 "#; let info = api::extract_build_info(metrics); assert_eq!(info.len(), 2); assert!( info.iter() .any(|i| i.service == "gateway" && i.version == "1.2.3" && i.git_sha == "abc") ); assert!( info.iter() .any(|i| i.service == "runner" && i.version == "2.0.0" && i.git_sha == "def") ); } #[test] fn build_info_snapshot_has_required_services() { let metrics = r#" gateway_build_info{service="gateway",version="1.2.3",git_sha="abc"} 1 aggregate_build_info{service="aggregate",version="1.0.0",git_sha="aaa"} 1 projection_build_info{service="projection",version="1.0.0",git_sha="bbb"} 1 runner_build_info{service="runner",version="2.0.0",git_sha="ccc"} 1 "#; let info = api::extract_build_info(metrics); for required in ["gateway", "aggregate", "projection", "runner"] { assert!( info.iter().any(|i| i.service == required), "missing build_info for service={required}" ); } }