diff --git a/src/api/client/state.rs b/src/api/client/state.rs index 60a1c62d2..5a66594c1 100644 --- a/src/api/client/state.rs +++ b/src/api/client/state.rs @@ -1,3 +1,5 @@ +#[cfg(test)] +mod tests; use axum::extract::State; use axum_client_ip::InsecureClientIp; use conduwuit::{ diff --git a/src/api/client/state/tests.rs b/src/api/client/state/tests.rs new file mode 100644 index 000000000..b829bebdb --- /dev/null +++ b/src/api/client/state/tests.rs @@ -0,0 +1,34 @@ +use super::*; + +#[test] +fn test_strip_room_member() -> Result<()> { + //Test setup + let body = r#" + { + "avatar_url": "Something", + "displayname": "Someone", + "join_authorized_via_users_server": "@someone:domain.tld", + "membership": "join" + }"#; + println!("JSON (original): {body}"); + let json: &mut Raw = + &mut Raw::::from_json_string(body.to_string())?; + let mut membership_content: RoomMemberEventContent = + json.deserialize_as::()?; + + //Begin Test + membership_content.join_authorized_via_users_server = None; + *json = Raw::::from_json_string(serde_json::to_string( + &membership_content, + )?)?; + + //Compare result + let result = json.json().get(); + println!("JSON (modified): {result}"); + assert_eq!( + result, + r#"{"avatar_url":"Something","displayname":"Someone","membership":"join"}"# + ); + + Ok(()) +}