use validit::Validate;
use crate::RaftState;
use crate::engine::LogIdList;
use crate::engine::testing::UTConfig;
use crate::type_config::alias::LogIdOf;
use crate::type_config::alias::SnapshotMetaOf;
fn log_id(term: u64, index: u64) -> LogIdOf<UTConfig> {
crate::engine::testing::log_id(term, 0, index)
}
#[test]
fn test_raft_state_validate_snapshot_is_none() -> anyhow::Result<()> {
let mut rs = RaftState::<UTConfig> {
log_ids: LogIdList::new(Some(log_id(1, 1)), vec![log_id(3, 4)]),
purge_upto: Some(log_id(1, 1)),
snapshot_meta: SnapshotMetaOf::<UTConfig>::default(),
..Default::default()
};
rs.apply_progress_mut().accept(log_id(1, 1));
assert!(rs.validate().is_ok());
Ok(())
}