// file: crates/ksp-app-backfill-desk/unit_tests/backfill_status.rs // version: 2 fn initial_notification() -> std::option::Option> { let signature = match ksp_job_backfill_lib::BackfillSignature::new("1".repeat(ksp_job_backfill_lib::MIN_BACKFILL_SIGNATURE_TEXT_BYTES)) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return std::option::Option::None, }; let scope = match ksp_job_backfill_lib::BackfillScope::explicit_signatures(vec![signature]) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return std::option::Option::None, }; let job_id = match ksp_job_api::JobId::new("backfill-desk-monitor-test") { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return std::option::Option::None, }; let network = match ksp_store_lib::RawNetworkId::new("mainnet") { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return std::option::Option::None, }; let request = ksp_job_backfill_lib::BackfillRequest::new( job_id, network, ksp_onchain_transport_lib::HttpRoleName::new("backfill_pool"), ksp_job_backfill_lib::BackfillCommitment::Confirmed, scope, 100, 10, 1, 1, std::option::Option::None, ); let request = match request { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return std::option::Option::None, }; let runtime = match ksp_job_backfill_lib::BackfillJobRuntime::new(request) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return std::option::Option::None, }; let source = runtime.handle().snapshots(); return std::option::Option::Some(::current(&source)); } #[test] fn latest_value_projection_is_safe_complete_and_uses_decimal_sequence_text() { let notification = match initial_notification() { std::option::Option::Some(value) => value, std::option::Option::None => return, }; let status = crate::project_backfill_status(¬ification); assert!(status.is_ok()); let status = match status { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return, }; assert!(status.active); assert!(!status.terminal); assert_eq!(status.job_id, "backfill-desk-monitor-test"); assert_eq!(status.job_kind, ksp_job_backfill_lib::BACKFILL_JOB_KIND_CODE); assert_eq!(status.sequence, "0"); assert_eq!(status.state, "created"); assert_eq!(status.phase, "created"); assert_eq!(status.scope_kind, "explicit_signatures"); assert!(!status.checkpoint_present); assert_eq!(status.candidates_selected, 0); assert_eq!(status.failure_code, std::option::Option::None); assert_eq!(status.failure_domain, std::option::Option::None); let serialized = serde_json::to_string(&status); assert!(serialized.is_ok()); if let std::result::Result::Ok(serialized) = serialized { for forbidden in ["address", "signature\"", "endpoint", "credential", "token", "postgres"] { assert!(!serialized.contains(forbidden)); } } }