v0.3.8-pre.006
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-app-store-desk/unit_tests/dto_common.rs
|
||||
// version: 1
|
||||
// version: 2
|
||||
|
||||
#[test]
|
||||
fn command_error_projection_keeps_only_stable_public_fields() {
|
||||
@@ -11,3 +11,30 @@ fn command_error_projection_keeps_only_stable_public_fields() {
|
||||
let debug = format!("{projected:?}");
|
||||
assert!(!debug.contains("must-not-cross-ipc"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn store_runtime_status_dto_contains_only_safe_portable_fields() {
|
||||
let value = crate::StoreRuntimeStatusDto {
|
||||
backend_kind: std::option::Option::Some("postgres".to_owned()),
|
||||
diagnostic: std::option::Option::None,
|
||||
health_state: "ready".to_owned(),
|
||||
migration_version_decimal: std::option::Option::Some("2".to_owned()),
|
||||
network: std::option::Option::Some("mainnet-beta".to_owned()),
|
||||
pending_migration_count: 0,
|
||||
pool_available: 1,
|
||||
pool_capacity: 8,
|
||||
pool_size: 1,
|
||||
pool_waiting: 0,
|
||||
profile_id: std::option::Option::Some("mainnet".to_owned()),
|
||||
store_open: true,
|
||||
};
|
||||
let serialized = serde_json::to_string(&value);
|
||||
assert!(serialized.is_ok(), "safe Store runtime DTO must serialize: {serialized:?}");
|
||||
if let std::result::Result::Ok(serialized) = serialized {
|
||||
assert!(serialized.contains("\"backendKind\":\"postgres\""));
|
||||
assert!(serialized.contains("\"migrationVersionDecimal\":\"2\""));
|
||||
for forbidden in ["postgresql://", "connection_uri", "connectionUri", "password", "payload", "dataBytes"] {
|
||||
assert!(!serialized.contains(forbidden), "Store runtime DTO leaked forbidden material: {forbidden}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user