43 lines
1.7 KiB
Rust
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"));
|
|
}
|
|
}
|