claw10-telemetry 0.2.0

Telemetry service for Claw10 OS
Documentation
use super::*;

#[test]
fn test_telemetry_event_builder() {
    let event = TelemetryEvent::new("agent.spawned", "success")
        .with_tenant_id("tenant-1".into())
        .with_agent_id("agent-1".into())
        .with_mission_id("mission-1".into())
        .with_cost(0.05);
    assert_eq!(event.event_type, "agent.spawned");
    assert_eq!(event.tenant_id.as_deref(), Some("tenant-1"));
    assert_eq!(event.agent_id.as_deref(), Some("agent-1"));
    assert!((event.cost_usd - 0.05).abs() < f64::EPSILON);
}

#[test]
fn test_emit_disabled() {
    let svc = TelemetryService::new(false);
    let event = TelemetryEvent::new("test", "ok");
    assert!(svc.emit(&event).is_ok());
}

#[test]
fn test_emit_enabled() {
    let svc = TelemetryService::new(true);
    let event = TelemetryEvent::new("test", "ok");
    assert!(svc.emit(&event).is_ok());
}

#[test]
fn test_record_convenience() {
    let svc = TelemetryService::new(true);
    let result = svc.record("test.event", "ok", |e| {
        e.with_tenant_id("t1".into())
    });
    assert!(result.is_ok());
}

#[test]
fn test_additional_fields() {
    let event = TelemetryEvent::new("test", "ok")
        .with_additional("reason".into(), "policy_denied".into());
    assert_eq!(event.additional.get("reason").unwrap(), "policy_denied");
}

#[test]
fn test_default_enabled() {
    let svc = TelemetryService::default();
    assert!(svc.enabled);
}