68 lines
2.8 KiB
Rust
68 lines
2.8 KiB
Rust
// file: crates/ksp-app-backfill-desk/unit_tests/dto_common.rs
|
|
// version: 6
|
|
|
|
#[test]
|
|
fn command_error_projection_excludes_arbitrary_context_and_source_values() {
|
|
let source = std::io::Error::other("secret-source");
|
|
let error = ksp_core_lib::Error::new(ksp_core_lib::ErrorCode::new("test", "failed"), "safe message")
|
|
.with_context("secret", "hidden")
|
|
.with_source(source);
|
|
let dto = crate::CommandErrorDto::from_error(&error);
|
|
assert_eq!(dto.domain, "test");
|
|
assert_eq!(dto.code, "failed");
|
|
assert_eq!(dto.message, "safe message");
|
|
}
|
|
|
|
#[test]
|
|
fn transport_options_projection_contains_only_safe_transport_metadata() {
|
|
let limits = crate::backfill_request_limits();
|
|
assert!(limits.is_ok());
|
|
let limits = match limits {
|
|
std::result::Result::Ok(value) => value,
|
|
std::result::Result::Err(_) => return,
|
|
};
|
|
let dto = crate::BackfillDeskOptionsDto {
|
|
commitments: crate::backfill_commitment_codes(),
|
|
http_routes: vec![crate::BackfillHttpRouteOptionDto { pooled: false, providers: vec!["solana-public".to_owned()], role: "default".to_owned() }],
|
|
limits,
|
|
composition_ready: true,
|
|
configured_networks: vec!["devnet".to_owned()],
|
|
network_coherent: true,
|
|
program_id_options: crate::program_id_autocomplete_options(),
|
|
scope_kinds: crate::backfill_scope_kind_codes(),
|
|
store_diagnostic: std::option::Option::None,
|
|
store_network: std::option::Option::Some("devnet".to_owned()),
|
|
store_ready: true,
|
|
transport_diagnostic: std::option::Option::None,
|
|
transport_ready: true,
|
|
};
|
|
let value = serde_json::to_value(dto);
|
|
assert!(value.is_ok());
|
|
if let std::result::Result::Ok(value) = value {
|
|
let serialized = value.to_string();
|
|
assert!(serialized.contains("default"));
|
|
assert!(serialized.contains("devnet"));
|
|
assert!(serialized.contains("solana-public"));
|
|
assert!(!serialized.contains("url"));
|
|
assert!(!serialized.contains("endpoint"));
|
|
assert!(!serialized.contains("postgres"));
|
|
assert!(!serialized.contains("connection"));
|
|
assert!(!serialized.contains("database"));
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn program_id_autocomplete_dataset_is_derived_exactly_from_core_registry() {
|
|
let options = crate::program_id_autocomplete_options();
|
|
let entries = ksp_core_lib::entries();
|
|
assert_eq!(options.len(), entries.len());
|
|
for (option, entry) in options.iter().zip(entries.iter()) {
|
|
assert_eq!(option.code, entry.code());
|
|
assert_eq!(option.name, entry.name());
|
|
assert_eq!(option.program_id, entry.program_id());
|
|
assert_eq!(option.domain, entry.domain());
|
|
assert_eq!(option.family, entry.family());
|
|
assert_eq!(option.protocol, entry.protocol());
|
|
}
|
|
}
|