Files
khadhroony-solana-project/crates/ksp-worker-api/unit_tests/snapshot.rs
2026-09-04 14:21:05 +02:00

67 lines
2.2 KiB
Rust

// file: crates/ksp-worker-api/unit_tests/snapshot.rs
// version: 1
#[test]
fn pre_002_snapshot_sequence_advances_strictly_and_orders_positions() {
let first = crate::WorkerSnapshotSequence::initial();
assert_eq!(first.value(), 0);
let second = first.next();
assert!(second.is_ok());
let second = match second {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
assert_eq!(second.value(), 1);
assert!(second.is_after(first));
assert!(!first.is_after(second));
assert!(!first.is_after(first));
return;
}
#[test]
fn pre_002_snapshot_sequence_exhaustion_is_explicit_and_non_wrapping() {
let exhausted = super::exhausted_snapshot_sequence();
let result = exhausted.next();
assert!(result.is_err());
let error = match result {
std::result::Result::Err(value) => value,
std::result::Result::Ok(_) => return,
};
assert_eq!(error.code(), crate::ERROR_CODE_WORKER_SNAPSHOT_SEQUENCE_EXHAUSTED);
assert_eq!(error.context().len(), 1);
assert_eq!(error.context()[0].key(), "sequence");
assert_eq!(error.context()[0].value(), u64::MAX.to_string());
return;
}
#[test]
fn pre_002_snapshot_preserves_exact_common_dimensions() {
let id = crate::WorkerId::new("worker-001");
let kind = crate::WorkerKindCode::new("example_worker");
assert!(id.is_ok());
assert!(kind.is_ok());
let id = match id {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
let kind = match kind {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
let snapshot = crate::WorkerSnapshot::new(
id,
kind,
crate::WorkerSnapshotSequence::initial(),
crate::WorkerState::Running,
crate::WorkerHealth::Healthy,
crate::WorkerActivity::Active,
);
assert_eq!(snapshot.id().as_str(), "worker-001");
assert_eq!(snapshot.kind().as_str(), "example_worker");
assert_eq!(snapshot.sequence().value(), 0);
assert_eq!(snapshot.state(), crate::WorkerState::Running);
assert_eq!(snapshot.health(), crate::WorkerHealth::Healthy);
assert_eq!(snapshot.activity(), crate::WorkerActivity::Active);
return;
}