v0.3.15-pre.007
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-app-raw-transaction-ingest-desk/unit_tests/route_inventory.rs
|
||||
// version: 4
|
||||
// version: 5
|
||||
|
||||
#[test]
|
||||
fn pre_006_route_requirement_projection_is_fail_closed_and_ordered() {
|
||||
@@ -27,8 +27,12 @@ fn pre_006_route_requirement_projection_is_fail_closed_and_ordered() {
|
||||
|
||||
#[test]
|
||||
fn pre_006_unavailable_profile_projects_all_five_routes_without_physical_material() {
|
||||
let profile =
|
||||
super::unavailable_profile("mainnet", false, std::option::Option::Some("mainnet"), crate::RawIngestRouteUnavailableReason::MissingRequiredSecret);
|
||||
let profile = super::unavailable_profile(
|
||||
"mainnet",
|
||||
false,
|
||||
std::option::Option::Some("mainnet"),
|
||||
crate::RawIngestRouteUnavailableReason::MissingRequiredSecret,
|
||||
);
|
||||
assert_eq!(profile.routes.len(), 5);
|
||||
assert_eq!(profile.network.as_deref(), std::option::Option::Some("mainnet"));
|
||||
for route in profile.routes {
|
||||
@@ -51,7 +55,7 @@ fn pre_006_fix_003_network_profiles_aggregate_same_network_capabilities_and_omit
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return,
|
||||
};
|
||||
let inventory = super::build_route_inventory_with_environment(&management, &environment, 7);
|
||||
let inventory = crate::build_route_inventory_with_environment(&management, &environment, 7);
|
||||
assert!(inventory.is_ok());
|
||||
let inventory = match inventory {
|
||||
std::result::Result::Ok(value) => value,
|
||||
@@ -59,10 +63,7 @@ fn pre_006_fix_003_network_profiles_aggregate_same_network_capabilities_and_omit
|
||||
};
|
||||
assert_eq!(inventory.generation, 7);
|
||||
assert_eq!(inventory.default_profile, "devnet");
|
||||
assert_eq!(
|
||||
inventory.profiles.iter().map(|profile| return profile.profile_id.as_str()).collect::<std::vec::Vec<_>>(),
|
||||
vec!["devnet", "mainnet", "testnet"]
|
||||
);
|
||||
assert_eq!(inventory.profiles.iter().map(|profile| return profile.profile_id.as_str()).collect::<std::vec::Vec<_>>(), vec!["devnet", "mainnet", "testnet"]);
|
||||
let devnet = profile(&inventory, "devnet");
|
||||
assert!(devnet.is_some());
|
||||
if let std::option::Option::Some(devnet) = devnet {
|
||||
@@ -130,7 +131,7 @@ fn pre_006_fix_003_base_network_routes_remain_configured_independently_of_option
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return,
|
||||
};
|
||||
let inventory = super::build_route_inventory_with_environment(&management, &environment, 11);
|
||||
let inventory = crate::build_route_inventory_with_environment(&management, &environment, 11);
|
||||
assert!(inventory.is_ok());
|
||||
let inventory = match inventory {
|
||||
std::result::Result::Ok(value) => value,
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
// file: crates/ksp-app-raw-transaction-ingest-desk/unit_tests/route_start.rs
|
||||
// version: 1
|
||||
|
||||
|
||||
#[test]
|
||||
fn pre_007_stale_generation_is_rejected_before_config_or_transport_reconstruction() {
|
||||
let management = crate::config_management(&[]);
|
||||
assert!(management.is_ok());
|
||||
let management = match management {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return,
|
||||
};
|
||||
let request = crate::RawIngestRouteStartRequestDto {
|
||||
commitment: crate::RawIngestCommitment::Confirmed,
|
||||
inventory_generation: 3,
|
||||
profile_id: "devnet".to_owned(),
|
||||
route_id: crate::RawIngestRouteId::StandardBlockDirect,
|
||||
};
|
||||
let result = crate::validate_route_start(&management, 2, &request);
|
||||
assert!(result.is_err());
|
||||
if let std::result::Result::Err(error) = result {
|
||||
assert_eq!(error.code(), crate::ERROR_CODE_ROUTE_START_STALE_INVENTORY);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pre_007_commitments_are_bounded_to_confirmed_and_finalized() {
|
||||
assert_eq!(crate::RawIngestCommitment::Confirmed.into_transport(), ksp_onchain_transport_lib::SolanaCommitment::Confirmed);
|
||||
assert_eq!(crate::RawIngestCommitment::Finalized.into_transport(), ksp_onchain_transport_lib::SolanaCommitment::Finalized);
|
||||
assert_eq!(crate::RawIngestCommitment::Confirmed.as_str(), "confirmed");
|
||||
assert_eq!(crate::RawIngestCommitment::Finalized.as_str(), "finalized");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pre_007_public_standard_profiles_reconstruct_block_and_http_sources_without_network_io() {
|
||||
let management = crate::config_management(&[]);
|
||||
assert!(management.is_ok());
|
||||
let management = match management {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return,
|
||||
};
|
||||
let inventory = crate::build_route_inventory(&management, 1);
|
||||
assert!(inventory.is_ok());
|
||||
let inventory = match inventory {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return,
|
||||
};
|
||||
for profile in inventory.profiles {
|
||||
for route_id in [crate::RawIngestRouteId::StandardLogsHydrated, crate::RawIngestRouteId::StandardBlockDirect, crate::RawIngestRouteId::HttpBlockPolling] {
|
||||
let route = profile.routes.iter().find(|route| return route.route_id == route_id);
|
||||
assert!(route.is_some(), "missing base route for {}", profile.profile_id);
|
||||
if let std::option::Option::Some(route) = route {
|
||||
assert_eq!(route.state, crate::RawIngestRouteState::Configured);
|
||||
let request = crate::RawIngestRouteStartRequestDto {
|
||||
commitment: crate::RawIngestCommitment::Confirmed,
|
||||
inventory_generation: 1,
|
||||
profile_id: profile.profile_id.clone(),
|
||||
route_id,
|
||||
};
|
||||
let prepared = crate::validate_route_start(&management, 1, &request);
|
||||
assert!(prepared.is_ok(), "failed Start-time reconstruction for {} / {}", profile.profile_id, route_id.as_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user