fix(sled): Deserialize encrypted TimelineMetadata properly

This commit is contained in:
Benjamin Kampmann
2022-06-07 11:57:10 +02:00
parent 2c4379909c
commit a308771a7a
2 changed files with 9 additions and 9 deletions

View File

@@ -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;
}

View File

@@ -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() {