0.3.15-pre.012-fix.004
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-store-postgres-lib/unit_tests/raw_transaction.rs
|
||||
// version: 6
|
||||
// version: 7
|
||||
|
||||
fn network() -> ksp_store_api::RawNetworkId {
|
||||
return match ksp_store_api::RawNetworkId::new("devnet") {
|
||||
@@ -392,6 +392,43 @@ fn pre_005_purged_tombstone_matches_only_retained_identity_metadata() {
|
||||
return;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn v0_3_15_pre_012_fix_004_content_conflict_diagnostic_classifies_raw_v1_components_without_payload_values() {
|
||||
let stored = raw_transaction(
|
||||
9,
|
||||
br#"{"transaction":["AQID","base64"],"meta":{"err":null,"fee":5000,"logMessages":["left"],"rewards":[]},"version":0,"transactionIndex":7}"#,
|
||||
7,
|
||||
);
|
||||
let incoming = raw_transaction(9, br#"{"transaction":["AQID","base64"],"meta":{"err":null,"fee":5000,"logMessages":["right"],"rewards":[{"lamports":1}]},"version":0,"transactionIndex":8}"#, 8);
|
||||
let diagnostic = super::raw_transaction_content_conflict_diagnostic(&stored, &incoming);
|
||||
assert!(!diagnostic.slot_mismatch);
|
||||
assert!(!diagnostic.block_time_mismatch);
|
||||
assert!(!diagnostic.format_id_mismatch);
|
||||
assert!(!diagnostic.format_version_mismatch);
|
||||
assert!(diagnostic.content_hash_mismatch);
|
||||
assert!(diagnostic.payload_bytes_mismatch);
|
||||
assert!(diagnostic.payload_diagnostic_available);
|
||||
assert!(!diagnostic.payload_transaction_mismatch);
|
||||
assert!(diagnostic.payload_meta_mismatch);
|
||||
assert!(!diagnostic.payload_version_mismatch);
|
||||
assert!(diagnostic.payload_transaction_index_mismatch);
|
||||
assert!(!diagnostic.payload_other_mismatch);
|
||||
assert_eq!(diagnostic.meta_mismatch_fields, "logMessages,rewards");
|
||||
return;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn v0_3_15_pre_012_fix_004_content_conflict_diagnostic_collapses_unknown_meta_keys_to_other() {
|
||||
let stored = raw_transaction(9, br#"{"transaction":["AQID","base64"],"meta":{"err":null,"futureField":1},"version":0}"#, 7);
|
||||
let incoming = raw_transaction(9, br#"{"transaction":["BAUG","base64"],"meta":{"err":null,"futureField":2},"version":1}"#, 8);
|
||||
let diagnostic = super::raw_transaction_content_conflict_diagnostic(&stored, &incoming);
|
||||
assert!(diagnostic.payload_transaction_mismatch);
|
||||
assert!(diagnostic.payload_meta_mismatch);
|
||||
assert!(diagnostic.payload_version_mismatch);
|
||||
assert_eq!(diagnostic.meta_mismatch_fields, "other");
|
||||
return;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pre_005_observation_idempotence_compares_reference_and_complete_provenance() {
|
||||
let incoming_transaction = raw_transaction(8, &[1, 2, 3], 4);
|
||||
|
||||
Reference in New Issue
Block a user