// file: crates/ksp-app-backfill-desk/unit_tests/dto_common.rs // version: 2 #[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()], configured_networks: vec!["devnet".to_owned()], 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")); } }