fixing timeline test

This commit is contained in:
Benjamin Kampmann
2022-03-02 08:36:10 +01:00
parent 9eee50da66
commit 40fa17f5b7
3 changed files with 36 additions and 51 deletions

View File

@@ -497,7 +497,7 @@ impl Room {
{
TimelineStreamBackward::new(event_ids.clone(), end_token, Some(stored_events))
} else {
TimelineStreamBackward::new(event_ids.clone(), Some(sync_token.clone().unwrap()), None)
TimelineStreamBackward::new(event_ids.clone(), Some(sync_token.clone().expect("Sync token exists")), None)
};
backward_timeline_streams.push(backward_sender);

View File

@@ -351,7 +351,7 @@ impl MemoryStore {
{
let pos = data.event_id_to_position.get(&redaction.redacts).copied();
if let Some(position) = pos{
if let Some(position) = pos {
if let Some(mut full_event) = data.events.get_mut(&position.clone()) {
let inner_event = full_event.event.deserialize()?;
if room_version.is_none() {
@@ -371,7 +371,7 @@ impl MemoryStore {
if let Some(event_id) = event.event_id() {
data.event_id_to_position.insert(event_id, start_position);
}
data.events.insert(start_position, event.to_owned());
data.events.insert(start_position, event.clone());
}
} else {
for event in timeline.events.iter() {
@@ -381,7 +381,7 @@ impl MemoryStore {
if let Some(event_id) = event.event_id() {
data.event_id_to_position.insert(event_id, end_position);
}
data.events.insert(end_position, event.to_owned());
data.events.insert(end_position, event.clone());
}
}
}
@@ -576,22 +576,26 @@ impl MemoryStore {
&self,
room_id: &RoomId,
) -> Result<Option<(BoxStream<Result<SyncRoomEvent>>, Option<String>)>> {
if let Some(data) = self.room_timeline.get(room_id) {
let events = data.events.clone();
let stream = stream! {
for item in events.values() {
yield Ok(item.to_owned());
}
};
info!(
"Found previously stored timeline for {}, with end token {:?}",
room_id, data.end
);
Ok(Some((Box::pin(stream), data.end.to_owned())))
let (events, end_token) = if let Some(data) = self.room_timeline.get(room_id) {
(data.events.clone(), data.end.clone())
} else {
info!("No timeline for {} was previously stored", room_id);
Ok(None)
}
return Ok(None);
};
let stream = stream! {
for (_, item) in events {
println!("yield {:#?}", item);
yield Ok(item);
}
};
info!(
"Found previously stored timeline for {}, with end token {:?}",
room_id, end_token
);
Ok(Some((Box::pin(stream), end_token)))
}
}

View File

@@ -3913,7 +3913,7 @@ pub(crate) mod test {
let _ = client.sync_once(sync_settings).await.unwrap();
sync_3.assert();
let expected_events = vec![
let expected_forward_events = vec![
"$152037280074GZeOm:localhost",
"$editevid:localhost",
"$151957878228ssqrJ:localhost",
@@ -3930,27 +3930,14 @@ pub(crate) mod test {
use futures_util::StreamExt;
let forward_events =
forward_stream.take(expected_events.len()).collect::<Vec<SyncRoomEvent>>().await;
forward_stream.take(expected_forward_events.len()).collect::<Vec<SyncRoomEvent>>().await;
assert!(forward_events.into_iter().zip(expected_events.iter()).all(|(a, b)| &a
.event_id()
.unwrap()
.as_str()
== b));
for (r, e) in forward_events.into_iter().zip(expected_forward_events.iter()) {
assert_eq!(&r.event_id().unwrap().as_str(), e);
}
let expected_events = vec![
"$152037280074GZeOm2:localhost",
"$editevid2:localhost",
"$151957878228ssqrJ2:localhost",
"$15275046980maRLj2:localhost",
"$15275047031IXQRi2:localhost",
"$098237280074GZeOm2:localhost",
let expected_backwards_events = vec![
"$152037280074GZeOm:localhost",
"$editevid:localhost",
"$151957878228ssqrJ:localhost",
"$15275046980maRLj:localhost",
"$15275047031IXQRi:localhost",
"$098237280074GZeOm:localhost",
"$1444812213350496Caaaf:example.com",
"$1444812213350496Cbbbf:example.com",
"$1444812213350496Ccccf:example.com",
@@ -3959,23 +3946,17 @@ pub(crate) mod test {
"$1444812213350496Cccck:example.com",
];
let join_handle = tokio::spawn(async move {
let backward_events = backward_stream
.take(expected_events.len())
.collect::<Vec<crate::Result<SyncRoomEvent>>>()
.await;
let backward_events = backward_stream
.take(expected_backwards_events.len())
.collect::<Vec<crate::Result<SyncRoomEvent>>>()
.await;
assert!(backward_events.into_iter().zip(expected_events.iter()).all(|(a, b)| &a
.unwrap()
.event_id()
.unwrap()
.as_str()
== b));
});
join_handle.await.unwrap();
for (r, e) in backward_events.into_iter().zip(expected_backwards_events.iter()) {
assert_eq!(&r.unwrap().event_id().unwrap().as_str(), e);
}
mocked_messages.assert();
mocked_messages_2.assert();
}
}