events: Add codegen for ephemeral event enum room_id accessor

This commit is contained in:
Devin Ragotzy 2021-04-16 17:42:29 -04:00 committed by GitHub
parent d7af96747c
commit 29b49d2edf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 4 deletions

View File

@ -30,7 +30,7 @@ type EventKindFn = fn(&EventKind, &EventKindVariation) -> bool;
const EVENT_FIELDS: &[(&str, EventKindFn)] = &[
("origin_server_ts", is_non_stripped_room_event),
("room_id", |kind, var| {
matches!(kind, EventKind::Message | EventKind::State)
matches!(kind, EventKind::Message | EventKind::State | EventKind::Ephemeral)
&& matches!(var, EventKindVariation::Full | EventKindVariation::Redacted)
}),
("event_id", is_non_stripped_room_event),

View File

@ -10,9 +10,9 @@ use ruma_events::{
message::{MessageEventContent, MessageType, TextMessageEventContent},
power_levels::PowerLevelsEventContent,
},
AnyEvent, AnyMessageEvent, AnyRoomEvent, AnyStateEvent, AnyStateEventContent,
AnySyncMessageEvent, AnySyncRoomEvent, AnySyncStateEvent, MessageEvent, StateEvent,
SyncMessageEvent, SyncStateEvent, Unsigned,
AnyEphemeralRoomEvent, AnyEvent, AnyMessageEvent, AnyRoomEvent, AnyStateEvent,
AnyStateEventContent, AnySyncMessageEvent, AnySyncRoomEvent, AnySyncStateEvent, MessageEvent,
StateEvent, SyncMessageEvent, SyncStateEvent, Unsigned,
};
fn message_event() -> JsonValue {
@ -296,3 +296,23 @@ fn alias_event_field_access() {
}
assert_eq!(deser.event_type(), "m.room.aliases");
}
#[test]
fn ephemeral_event_deserialization() {
let json_data = json!({
"content": {
"user_ids": [
"@alice:matrix.org",
"@bob:example.com"
]
},
"room_id": "!jEsUZKDJdhlrceRyVU:example.org",
"type": "m.typing"
});
assert_matches!(
from_json_value::<AnyEvent>(json_data),
Ok(AnyEvent::Ephemeral(ephem @ AnyEphemeralRoomEvent::Typing(_)))
if ephem.room_id() == &room_id!("!jEsUZKDJdhlrceRyVU:example.org")
);
}