Initialize repository snapshot

This commit is contained in:
Vault Sovereign
2025-12-27 00:10:32 +00:00
commit 110d644e10
281 changed files with 40331 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
//! Smoke test for the observability exporter HTTP server
use std::net::SocketAddr;
use std::sync::Arc;
use tokio::time::{sleep, Duration};
use vaultmesh_observability::ObservabilityEngine;
#[tokio::test]
async fn test_metrics_endpoint_returns_200() {
let engine = Arc::new(ObservabilityEngine::new());
let addr: SocketAddr = "127.0.0.1:19108".parse().unwrap();
// Prometheus only outputs metrics after they've been observed
engine.observe_emitted("test", 0.01);
engine.set_anchor_age(1700000000.0);
engine.clone().serve(&addr).await.expect("serve failed");
// Give the server time to start
sleep(Duration::from_millis(100)).await;
// Request /metrics
let resp = reqwest::get("http://127.0.0.1:19108/metrics")
.await
.expect("request failed");
assert!(resp.status().is_success(), "Expected 200 OK");
let body = resp.text().await.expect("body read failed");
assert!(
body.contains("vaultmesh_receipts_total"),
"Expected vaultmesh_receipts_total metric"
);
assert!(
body.contains("vaultmesh_anchor_age_seconds"),
"Expected vaultmesh_anchor_age_seconds metric"
);
}
#[tokio::test]
async fn test_health_endpoint() {
let engine = Arc::new(ObservabilityEngine::new());
let addr: SocketAddr = "127.0.0.1:19109".parse().unwrap();
engine.clone().serve(&addr).await.expect("serve failed");
sleep(Duration::from_millis(100)).await;
let resp = reqwest::get("http://127.0.0.1:19109/health")
.await
.expect("request failed");
assert!(resp.status().is_success());
let body = resp.text().await.unwrap();
assert_eq!(body, "ok");
}
#[tokio::test]
async fn test_metrics_after_observations() {
let engine = Arc::new(ObservabilityEngine::new());
let addr: SocketAddr = "127.0.0.1:19110".parse().unwrap();
// Record some metrics before starting server
engine.observe_emitted("guardian", 0.05);
engine.observe_emitted("treasury", 0.02);
engine.observe_failed("mesh", "timeout");
engine.set_anchor_age(1700000000.0);
engine.clone().serve(&addr).await.expect("serve failed");
sleep(Duration::from_millis(100)).await;
let resp = reqwest::get("http://127.0.0.1:19110/metrics")
.await
.expect("request failed");
let body = resp.text().await.unwrap();
// Check that our recorded metrics appear
assert!(body.contains("guardian"), "Expected guardian label");
assert!(body.contains("treasury"), "Expected treasury label");
assert!(body.contains("mesh"), "Expected mesh label");
assert!(body.contains("timeout"), "Expected timeout reason");
assert!(
body.contains("1.7e+09") || body.contains("1700000000"),
"Expected anchor age value"
);
}