Files
khadhroony-solana-project/crates/ksp-app-backfill-desk/unit_tests/dto_common.rs
2026-09-02 12:01:35 +02:00

43 lines
1.7 KiB
Rust

// file: crates/ksp-app-backfill-desk/unit_tests/dto_common.rs
// version: 3
#[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 dto = crate::BackfillDeskOptionsDto {
compatible_roles: vec!["default".to_owned()],
composition_ready: true,
configured_networks: vec!["devnet".to_owned()],
network_coherent: true,
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("provider"));
assert!(!serialized.contains("url"));
assert!(!serialized.contains("endpoint"));
assert!(!serialized.contains("postgres"));
assert!(!serialized.contains("connection"));
assert!(!serialized.contains("database"));
}
}