mirror of
https://github.com/matrix-org/matrix-rust-sdk.git
synced 2026-05-19 06:04:31 -04:00
fix(sled): Deserialize encrypted TimelineMetadata properly
This commit is contained in:
@@ -647,7 +647,7 @@ macro_rules! statestore_integration_tests {
|
||||
|
||||
// Add sync response
|
||||
let sync = SyncResponse::try_from_http_response(
|
||||
Response::builder().body(serde_json::to_vec(&*test_json::MORE_SYNC).unwrap()).unwrap(),
|
||||
Response::builder().body(serde_json::to_vec(&*test_json::MORE_SYNC).expect("Parsing MORE_SYNC failed")).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
@@ -665,7 +665,7 @@ macro_rules! statestore_integration_tests {
|
||||
);
|
||||
let mut changes = StateChanges::new(sync.next_batch.clone());
|
||||
changes.add_timeline(room_id, timeline_slice);
|
||||
store.save_changes(&changes).await.unwrap();
|
||||
store.save_changes(&changes).await.expect("Saving room timeline failed");
|
||||
|
||||
check_timeline_events(room_id, &store, &stored_events, timeline.prev_batch.as_deref())
|
||||
.await;
|
||||
@@ -673,7 +673,7 @@ macro_rules! statestore_integration_tests {
|
||||
// Add message response
|
||||
let messages = MessageResponse::try_from_http_response(
|
||||
Response::builder()
|
||||
.body(serde_json::to_vec(&*test_json::SYNC_ROOM_MESSAGES_BATCH_1).unwrap())
|
||||
.body(serde_json::to_vec(&*test_json::SYNC_ROOM_MESSAGES_BATCH_1).expect("Parsing SYNC_ROOM_MESSAGES_BATCH_1 failed"))
|
||||
.unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
@@ -691,14 +691,14 @@ macro_rules! statestore_integration_tests {
|
||||
TimelineSlice::new(events, messages.start.clone(), messages.end.clone(), false, false);
|
||||
let mut changes = StateChanges::default();
|
||||
changes.add_timeline(room_id, timeline_slice);
|
||||
store.save_changes(&changes).await.unwrap();
|
||||
store.save_changes(&changes).await.expect("Saving room update timeline failed");
|
||||
|
||||
check_timeline_events(room_id, &store, &stored_events, messages.end.as_deref()).await;
|
||||
|
||||
// Add second message response
|
||||
let messages = MessageResponse::try_from_http_response(
|
||||
Response::builder()
|
||||
.body(serde_json::to_vec(&*test_json::SYNC_ROOM_MESSAGES_BATCH_2).unwrap())
|
||||
.body(serde_json::to_vec(&*test_json::SYNC_ROOM_MESSAGES_BATCH_2).expect("Parsing SYNC_ROOM_MESSAGES_BATCH_2 failed"))
|
||||
.unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
@@ -716,7 +716,7 @@ macro_rules! statestore_integration_tests {
|
||||
TimelineSlice::new(events, messages.start.clone(), messages.end.clone(), false, false);
|
||||
let mut changes = StateChanges::default();
|
||||
changes.add_timeline(room_id, timeline_slice);
|
||||
store.save_changes(&changes).await.unwrap();
|
||||
store.save_changes(&changes).await.expect("Saving room update timeline 2 failed");
|
||||
|
||||
check_timeline_events(room_id, &store, &stored_events, messages.end.as_deref()).await;
|
||||
|
||||
@@ -744,7 +744,7 @@ macro_rules! statestore_integration_tests {
|
||||
);
|
||||
let mut changes = StateChanges::new(sync.next_batch.clone());
|
||||
changes.add_timeline(room_id, timeline_slice);
|
||||
store.save_changes(&changes).await.unwrap();
|
||||
store.save_changes(&changes).await.expect("Saving room update timeline 3 failed");
|
||||
|
||||
check_timeline_events(room_id, &store, &stored_events, messages.end.as_deref()).await;
|
||||
|
||||
@@ -759,7 +759,7 @@ macro_rules! statestore_integration_tests {
|
||||
);
|
||||
let mut changes = StateChanges::default();
|
||||
changes.add_timeline(room_id, timeline_slice);
|
||||
store.save_changes(&changes).await.unwrap();
|
||||
store.save_changes(&changes).await.expect("Saving room update timeline 4 failed");
|
||||
|
||||
check_timeline_events(room_id, &store, &Vec::new(), end_token.as_deref()).await;
|
||||
}
|
||||
|
||||
@@ -1242,7 +1242,7 @@ impl SledStore {
|
||||
let metadata: Option<TimelineMetadata> = self
|
||||
.room_timeline_metadata
|
||||
.get(self.encode_key(TIMELINE_METADATA, &room_id))?
|
||||
.map(|v| serde_json::from_slice(&v).map_err(StoreError::Json))
|
||||
.map(|item| self.deserialize_value(&item))
|
||||
.transpose()?;
|
||||
if let Some(mut metadata) = metadata {
|
||||
if !timeline.sync && Some(&timeline.start) != metadata.end.as_ref() {
|
||||
|
||||
Reference in New Issue
Block a user