#![allow(clippy::print_stdout)]
use batpak::prelude::*;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let dir = tempfile::tempdir()?;
let store = Store::open(StoreConfig::new(dir.path()))?;
let lifecycle_entries = store.by_fact(EventKind::SYSTEM_OPEN_COMPLETED);
let open_entry = lifecycle_entries
.first()
.ok_or("mutable open should emit SYSTEM_OPEN_COMPLETED")?;
let open_event = store.get_raw(open_entry.event_id)?;
assert_eq!(open_event.coordinate.entity(), "batpak:store");
assert_eq!(open_event.coordinate.scope(), "batpak:lifecycle");
assert_eq!(
open_event.event.header.event_kind,
EventKind::SYSTEM_OPEN_COMPLETED
);
println!(
"observed lifecycle open event {} at {}/{}",
open_event.event.header.event_id,
open_event.coordinate.entity(),
open_event.coordinate.scope()
);
store.close()?;
Ok(())
}