// 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()); } } } }