#[allow(dead_code)]
mod common;
use bevy::prelude::*;
use bevy_ggrs::{RollbackFrameCount, prelude::*};
use common::{GgrsConfig, base_synctest_app, synctest_session};
use core::time::Duration;
#[test]
fn ggrs_time_survives_session_restart() {
let mut app = base_synctest_app(2);
for _ in 0..30 {
app.update();
}
assert!(
app.world().resource::<Time<GgrsTime>>().elapsed() > Duration::ZERO,
"GgrsTime should have advanced during the first session"
);
app.world_mut().remove_resource::<Session<GgrsConfig>>();
app.update();
app.world_mut().insert_resource(synctest_session(2));
app.update();
let frame = app.world().resource::<RollbackFrameCount>().0;
let expected = Duration::from_nanos(frame as u64 * 1_000_000_000 / 60);
assert_eq!(
app.world().resource::<Time<GgrsTime>>().elapsed(),
expected,
"GgrsTime should track the restarted session's frame count"
);
}