use rust_supervisor::event::payload::{SupervisorEvent, What, Where};
use rust_supervisor::event::time::{CorrelationId, EventSequence, EventTime, When};
use rust_supervisor::id::types::{Attempt, Generation, SupervisorPath};
use uuid::Uuid;
#[test]
fn supervisor_event_serializes_typed_shape() {
let event = SupervisorEvent::new(
When::new(EventTime::deterministic(
1,
2,
3,
Generation::initial(),
Attempt::first(),
)),
Where::new(SupervisorPath::root()),
What::ChildRunning { transition: None },
EventSequence::new(1),
CorrelationId::from_uuid(Uuid::nil()),
1,
);
let json = serde_json::to_string(&event).expect("serialize event");
assert!(json.contains("ChildRunning"));
assert!(json.contains("config_version"));
}