// file: crates/ksp-app-wallet-desk/unit_tests/wallet_security.rs // version: 2 #[test] fn password_rotation_request_is_deserializable_without_copy_contracts() { fn assert_deserializable(_marker: std::marker::PhantomData) where T: serde::de::DeserializeOwned, { return; } assert_deserializable(std::marker::PhantomData::); } #[test] fn view_security_status_is_serializable_and_contains_no_password_field() { fn assert_serializable(_marker: std::marker::PhantomData) where T: serde::Serialize, { return; } assert_serializable(std::marker::PhantomData::); let source = include_str!("../src/wallet_security.rs"); let status = source.split("pub(crate) struct WalletViewSecurityStatusDto").nth(1).unwrap_or_default().split("}\n").next().unwrap_or_default(); let fields = status.lines().filter(|line| return line.trim_start().starts_with("pub(crate) ")).collect::>().join("\n"); assert!(!fields.contains("password")); }