v0.3.13-pre.008
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-worker-raw-transaction-ingest-lib/unit_tests/admission.rs
|
||||
// version: 4
|
||||
// version: 5
|
||||
|
||||
fn material(
|
||||
network: &str,
|
||||
@@ -262,3 +262,52 @@ async fn pre_009_full_queue_dequeue_marks_source_neutral_backpressure_observatio
|
||||
assert!(!admission.take_backpressure_wait_observed());
|
||||
return;
|
||||
}
|
||||
|
||||
#[tokio::test(flavor = "current_thread")]
|
||||
async fn v0_3_13_pre_008_distinct_source_keys_produce_distinct_idempotent_observation_keys() {
|
||||
let (network, first_material) = match material("mainnet", 51, "AQID") {
|
||||
std::option::Option::Some(value) => value,
|
||||
std::option::Option::None => return,
|
||||
};
|
||||
let (_, second_material) = match material("mainnet", 51, "AQID") {
|
||||
std::option::Option::Some(value) => value,
|
||||
std::option::Option::None => return,
|
||||
};
|
||||
let first_provenance = match provenance() {
|
||||
std::option::Option::Some(value) => value,
|
||||
std::option::Option::None => return,
|
||||
};
|
||||
let second_provenance = match provenance() {
|
||||
std::option::Option::Some(value) => value,
|
||||
std::option::Option::None => return,
|
||||
};
|
||||
let (mut admission, sender) = crate::RawTransactionAdmission::new(2);
|
||||
let first_ingress = crate::RawTransactionIngress {
|
||||
material: first_material,
|
||||
network: network.clone(),
|
||||
provenance: first_provenance,
|
||||
source_key: [11_u8; 32],
|
||||
};
|
||||
let second_ingress = crate::RawTransactionIngress {
|
||||
material: second_material,
|
||||
network: network.clone(),
|
||||
provenance: second_provenance,
|
||||
source_key: [12_u8; 32],
|
||||
};
|
||||
if sender.send(first_ingress).await.is_err() || sender.send(second_ingress).await.is_err() {
|
||||
return;
|
||||
}
|
||||
std::mem::drop(sender);
|
||||
let first = match admission.receive(&network).await {
|
||||
std::result::Result::Ok(std::option::Option::Some(value)) => value,
|
||||
_ => return,
|
||||
};
|
||||
let second = match admission.receive(&network).await {
|
||||
std::result::Result::Ok(std::option::Option::Some(value)) => value,
|
||||
_ => return,
|
||||
};
|
||||
assert_eq!(first.transaction().reference(), second.transaction().reference());
|
||||
assert_eq!(first.transaction().payload().content_hash(), second.transaction().payload().content_hash());
|
||||
assert_ne!(first.observation().observation_key(), second.observation().observation_key());
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user