61 lines
2.4 KiB
Rust
61 lines
2.4 KiB
Rust
// file: crates/ksp-app-raw-transaction-ingest-desk/unit_tests/dto_route.rs
|
|
// version: 2
|
|
|
|
#[test]
|
|
fn pre_005_route_ids_are_exact_and_stably_ordered() {
|
|
let foundation = crate::RawIngestRouteFoundationDto::scaffold();
|
|
assert_eq!(foundation.route_ids.len(), 5);
|
|
let value = serde_json::to_value(foundation.route_ids);
|
|
assert!(value.is_ok());
|
|
if let std::result::Result::Ok(value) = value {
|
|
assert_eq!(
|
|
value,
|
|
serde_json::json!(["yellowstone-hydrated", "standard-logs-hydrated", "standard-block-direct", "helius-transaction-hydrated", "http-block-polling"])
|
|
);
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn pre_005_route_states_are_exact_without_runtime_claims() {
|
|
let foundation = crate::RawIngestRouteFoundationDto::scaffold();
|
|
assert_eq!(foundation.states.len(), 7);
|
|
let value = serde_json::to_value(foundation.states);
|
|
assert!(value.is_ok());
|
|
if let std::result::Result::Ok(value) = value {
|
|
assert_eq!(value, serde_json::json!(["unavailable", "configured", "starting", "running", "stopping", "stopped", "faulted"]));
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn pre_006_unavailable_reason_codes_are_exact_and_safe() {
|
|
let values = [
|
|
crate::RawIngestRouteUnavailableReason::ProfileUnresolved,
|
|
crate::RawIngestRouteUnavailableReason::NetworkMismatch,
|
|
crate::RawIngestRouteUnavailableReason::MissingHttpGetTransaction,
|
|
crate::RawIngestRouteUnavailableReason::MissingHttpBlockScan,
|
|
crate::RawIngestRouteUnavailableReason::MissingWsLogsCapability,
|
|
crate::RawIngestRouteUnavailableReason::MissingWsBlockCapability,
|
|
crate::RawIngestRouteUnavailableReason::MissingHeliusTransactionCapability,
|
|
crate::RawIngestRouteUnavailableReason::MissingYellowstoneGrpc,
|
|
crate::RawIngestRouteUnavailableReason::MissingRequiredSecret,
|
|
];
|
|
let serialized = serde_json::to_value(values);
|
|
assert!(serialized.is_ok());
|
|
if let std::result::Result::Ok(serialized) = serialized {
|
|
assert_eq!(
|
|
serialized,
|
|
serde_json::json!([
|
|
"profile_unresolved",
|
|
"network_mismatch",
|
|
"missing_http_get_transaction",
|
|
"missing_http_block_scan",
|
|
"missing_ws_logs_capability",
|
|
"missing_ws_block_capability",
|
|
"missing_helius_transaction_capability",
|
|
"missing_yellowstone_grpc",
|
|
"missing_required_secret"
|
|
])
|
|
);
|
|
}
|
|
}
|