chore(tests): move check_requests from encryption_sync_service to sliding_sync helper file

This commit is contained in:
Benjamin Bouvier
2023-09-05 11:13:05 +02:00
parent 3d89d750fb
commit 94cfa9fc12
3 changed files with 38 additions and 39 deletions

View File

@@ -7,11 +7,11 @@ use matrix_sdk_ui::encryption_sync_service::{
};
use serde_json::json;
use tokio::sync::Mutex as AsyncMutex;
use wiremock::{Match as _, Mock, MockGuard, MockServer, Request, ResponseTemplate};
use wiremock::{Mock, MockGuard, MockServer, Request, ResponseTemplate};
use crate::{
logged_in_client,
sliding_sync::{PartialSlidingSyncRequest, SlidingSyncMatcher},
sliding_sync::{check_requests, PartialSlidingSyncRequest, SlidingSyncMatcher},
sliding_sync_then_assert_request_and_fake_response,
};
@@ -159,40 +159,6 @@ async fn setup_mocking_sliding_sync_server(server: &MockServer) -> MockGuard {
.await
}
pub(crate) async fn check_requests(server: MockServer, expected_requests: &[serde_json::Value]) {
let mut num_requests = 0;
for request in &server.received_requests().await.expect("Request recording has been disabled") {
if !SlidingSyncMatcher.matches(request) {
continue;
}
assert!(
num_requests < expected_requests.len(),
"unexpected extra requests received in the server"
);
let mut json_value = serde_json::from_slice::<serde_json::Value>(&request.body).unwrap();
// Strip the transaction id, if present.
if let Some(root) = json_value.as_object_mut() {
root.remove("txn_id");
}
if let Err(error) = assert_json_diff::assert_json_matches_no_panic(
&json_value,
&expected_requests[num_requests],
assert_json_diff::Config::new(assert_json_diff::CompareMode::Strict),
) {
panic!("{error}\n\njson_value = {json_value:?}");
}
num_requests += 1;
}
assert_eq!(num_requests, expected_requests.len(), "missing requests");
}
#[async_test]
async fn test_encryption_sync_one_fixed_iteration() -> anyhow::Result<()> {
let (client, server) = logged_in_client().await;

View File

@@ -19,9 +19,8 @@ use wiremock::{
};
use crate::{
encryption_sync_service::check_requests,
logged_in_client, mock_encryption_state, mock_sync,
sliding_sync::{PartialSlidingSyncRequest, SlidingSyncMatcher},
sliding_sync::{check_requests, PartialSlidingSyncRequest, SlidingSyncMatcher},
};
#[async_test]

View File

@@ -1,6 +1,40 @@
//! Helpers for integration tests involving sliding sync.
use wiremock::{http::Method, Match, Request};
use wiremock::{http::Method, Match, MockServer, Request};
pub(crate) async fn check_requests(server: MockServer, expected_requests: &[serde_json::Value]) {
let mut num_requests = 0;
for request in &server.received_requests().await.expect("Request recording has been disabled") {
if !SlidingSyncMatcher.matches(request) {
continue;
}
assert!(
num_requests < expected_requests.len(),
"unexpected extra requests received in the server"
);
let mut json_value = serde_json::from_slice::<serde_json::Value>(&request.body).unwrap();
// Strip the transaction id, if present.
if let Some(root) = json_value.as_object_mut() {
root.remove("txn_id");
}
if let Err(error) = assert_json_diff::assert_json_matches_no_panic(
&json_value,
&expected_requests[num_requests],
assert_json_diff::Config::new(assert_json_diff::CompareMode::Strict),
) {
panic!("{error}\n\njson_value = {json_value:?}");
}
num_requests += 1;
}
assert_eq!(num_requests, expected_requests.len(), "missing requests");
}
pub(crate) struct SlidingSyncMatcher;