use samod_core::actors::hub::HubEvent;
use samod_test_harness::{Network, RunningDocIds};
fn init_logging() {
let _ = tracing_subscriber::fmt()
.with_env_filter(tracing_subscriber::EnvFilter::from_default_env())
.try_init();
}
#[test]
fn test_stop_waits_for_save_tasks() {
init_logging();
let mut network = Network::new();
let alice = network.create_samod("alice");
let command_id = network.samod(&alice).start_create_document();
network.samod(&alice).stop();
let RunningDocIds { doc_id, .. } = network
.samod(&alice)
.check_create_document_result(command_id)
.unwrap();
let storage = network.samod(&alice).storage().clone();
let alice_reloaded = network.create_samod_with_storage("alice_reloaded", storage);
let _actor_id = network
.samod(&alice_reloaded)
.find_document(&doc_id)
.expect("document should be found after reload");
}
#[test]
fn test_event_after_stop_does_not_panic() {
init_logging();
let mut network = Network::new();
let alice = network.create_samod("alice");
let bob = network.create_samod("bob");
let connected = network.connect(alice, bob);
network.samod(&alice).stop();
let conn_id = connected.left;
network
.samod(&alice)
.push_event(HubEvent::connection_lost(conn_id));
network.samod(&alice).handle_events();
}
#[test]
fn test_tick_after_stop_does_not_panic() {
init_logging();
let mut network = Network::new();
let alice = network.create_samod("alice");
network.samod(&alice).stop();
network.samod(&alice).push_event(HubEvent::tick());
network.samod(&alice).handle_events();
}